本汇编代码的含义是什么?

时间:2013-11-20 08:11:01

标签: assembly x86 att

jmp *0x804a260(,%eax,4)

比方说,eax保持2.这将需要2 * 4并将其添加到0x804a260,给你0x804a268,并且会跳转到那个位置,对吗?

1 个答案:

答案 0 :(得分:3)

  

jmp * 0x804a260(,%eax,4)

上面的ATT语法与intel语法中的以下内容相同:

jmp dword ptr [eax*4 + 0x804a260]

它计算内存位置eax*4 + 0x804a260,从该位置读取一个dword,将其视为地址并跳转到该地址。

使用您的示例,假设eax为2.计算的地址为0x804a268。此外,让我们说0x804a268它包含0xbadf00d。这意味着在执行jmp之后,程序计数器eip将尝试在内存位置0xbadf00d执行下一条指令。