JMP指令
无条件跳转。修改EIP
的值,而且只影响EIP
的值。
MOV EIP, 寄存器/立即数 ;不能执行
简写为:JMP 寄存器/立即数
CALL和RET指令
CALL指令
PUSH 地址B
MOV EIP, 地址A/寄存器
简写为:CALL 地址A/寄存器
理解:调用call
时,会首先把call
当前指令的下一条指令地址压入栈中,相应的ESP
寄存器会减4,然后将EIP
的值修改为call
指令指定的地址,然后继续执行程序。
RET(RETN)指令
LEA ESP, [ESP + 4]
MOV EIP, [ESP - 4] ;相当于POP EIP
简写为:RET
相当于POP EIP
理解:调用RET
时,会首先弹出栈顶,ESP
加4,然后将EIP
的值修改为ESP - 4
指定的内存单元的值,然后继续执行程序。