(四)PUSH、POP、PUSHAD與PUSHFD

PUSH:往ESP-4的內存地址存入數據,而且esp的值減存入的數據寬度spa

push 0x12345678內存

 

mov dword ptr ds: [esp-4],eax   //存入數據容器

lea esp , dword ptr ds: [esp-4]  //提高棧頂數據

POP:將棧頂的數據複製到指定的容器,ESP並加上該彈出數據的寬度word

POP eax  //將棧頂4字節複製到EAX,ESP加4co

mov eax,dword ptr ds: [ESP]push

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 這樣就能夠快速修改多個標誌寄存器位

相關文章
相關標籤/搜索