当前位置 博文首页 > KOOKNUT的博客:E8/E9/FF 15/FF25指令--汇编学习笔记
E8/FF 15:这两个指令都是call指令,两个指令后面跟的数据有不同的含义。
011472A1 E8 9F A3 FF FF call Sub_1 (01141645h)
011472B6 FF 15 D0 00 1A 01 call dword ptr [__imp__MessageBoxW@16 (011A00D0h)]
如上面代码所示:
Sub_1的地址是 011472A1 + 5 + FFFFA39F = 目标地址
也就是说E8后面跟的是偏移地址,再加上5个字节的偏移。
MessageBoxW是 FF 15指令后面直接跟的绝对地址。
E9/FF 25:这两个指令时jmp指令,两个指令后面跟的数据有不同的含义。
01141645 E9 D6 3A 00 00 jmp Sub_1 (01145120h)
E9指令和E8的计算方法是一样的:
01141645 + 5 + 00003AD6是目标地址。
FF 25指令后面跟的是绝对地址。
“To live is to risk it at all.”