X86 POPF POPFD指令詳解

2021-08-02 09:26:44 字數 610 閱讀 9454

sdm指令功能描述(popf/popfd)

總體描述:

popf/popfd/popfq指令從rsp/esp/sp指向的堆疊中(棧頂)取出operandsize大小的資料載入至rflags/eflags/flags暫存器,並將堆疊指標暫存器rsp/esp/sp增加對應operandsize大小。能被該指令影響的flags標記位,取決於當前指令所處的模式。當處於保護模式下且當前特權級別為0時,除了rf,vip,vif,vm以外的所有非保留標記位都可以被改變。當執行在0 < 特權級 < iopl時,除了iopl以及vip,vif,vm外的所有標記位僅在執行的特權及 >= iopl時才會被改變。在虛擬8086模式下,iopl必須為3,否則使用popf指令將導致gp異常。

偽**:

if(vm == 0) 

else

if (operandsize == 64)

else

} else

else

}else

if (operandsize == 64)

else

} else

}} else

else }}

}

X86 LEA指令詳解

1.sdm指令功能描述 lea lea 總體描述 從第二個運算元 源運算元 計算有效位址,並將結果存入第乙個運算元 目的運算元 源運算元是指定了一種訪存操作的記憶體位址,目的運算元為乙個通用暫存器。位址大小和運算元大小都會影響該指令的結果,運算元大小被指令中指定的暫存器大小決定,位址大小由 段描述符...

X86彙編指令詳解

x86彙編基本分為七大體系 分別是 1 資料傳送指令 2 算術運算指令 3 邏輯運算指令 4 串操作指令 5 控制轉移指令 6 處理器控制指令 7 保護方式指令 先介紹資料傳送指令集 1 資料傳送指令 1.mov 格式 mov destination,source 功能 將s ource中的資料傳送...

x86 x64 Call Jmp 指令區別

1 call指令和jmp指令的機器碼不同。2 call指令會對當前指令的下一條指令的位址進行壓棧操作,來實現函式的返回。相當於push eip 5 jmp xx 1 x86 call e8 ff15 但是其他比如 call eax 等是不相同的 e8 xx 其中 xx是偏移位址 計算方法 目標位址 ...