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的主要内容,如果未能解决你的问题,请参考以下文章

python网络编程基础(线程与进程并行与并发同步与异步)

=与==&与&&| 与 || 的区别

与 0 进行比较与与某个值进行比较是不是更快?

三.工具与市场-债券与债务股票与公司

RESTfulREST 与 RESTful 理解与实践

RESTfulREST 与 RESTful 理解与实践