在这种情况下,jmp指令如何在att程序集中工作

时间:2014-05-01 23:41:49

标签: assembly x86 att

我现在正在逐步完成AT& T程序集中的一个功能,并且无法弄清楚这个特定的jmp命令是如何工作的。

    jmp    *0x804a140(,%eax,4)

如何使用%eax寄存器和4使用跳转指令?我以前从未见过jmp这样使用过。

1 个答案:

答案 0 :(得分:5)

如果您对at& t语法感到困惑,请将工具切换到英特尔模式。

您看到的有效地址并不特定于跳转,您可能会遇到任何带有内存操作数的指令。

在intel语法中,这看起来像:jmp [0x804a140 + 4 * eax]。它是从内存地址0x804a140 + 4 * eax获取跳转目标的间接跳转。这可能是所谓的跳转表中的一个项目。