PUSHPOPPUSHAD与PUSHFD
Posted 晓晓晓
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PUSHPOPPUSHAD与PUSHFD相关的知识,希望对你有一定的参考价值。
PUSH:往ESP-4的内存地址存入数据,并且esp的值减存入的数据宽度
push 0x12345678
mov dword ptr ds: [esp-4],eax //存入数据
lea esp , dword ptr ds: [esp-4] //提升栈顶
POP:将栈顶的数据复制到指定的容器,ESP并加上该弹出数据的宽度
POP eax //将栈顶4字节复制到EAX,ESP加4
mov eax,dword ptr ds: [ESP]
LEA ESP ,DWORD PTR DS: [ESP+4]
PUSHAD :将每个寄存器依次push到栈顶,栈顶提升
相当于依次PUSH EAX ; PUSH ECX ; PUSH EDX ; PUSH EBX……PUSH EDI
POPAD:将栈顶的值依次弹出到EDI ESI EBP ESP EBX EDX ECX EAX
与PUSHAD 构成恢复现场
PUSHDF:将EFL 标志寄存器PUSH到栈顶,栈顶提升
POPDF:将栈顶的数据弹出到EFL 标志寄存器 //可以push到内存然后修改后再POP带EFL 这样就可以快速修改多个标志寄存器位
以上是关于PUSHPOPPUSHAD与PUSHFD的主要内容,如果未能解决你的问题,请参考以下文章