我现在正在AT&T程序集中执行一个函数,无法弄清楚这个特定的jmp命令是如何工作的。
jmp *0x804a140(,%eax,4)它究竟是如何使用%eax寄存器和4与跳转指令?我从来没有见过jmp用这种方式。
发布于 2014-05-01 23:46:08
如果您对at&t语法感到困惑,请将您的工具切换到英特尔模式。
您所看到的有效地址并不是特定于跳转,您可以在任何使用内存操作数的指令中遇到它。
在英特尔语法中,这看起来应该是:jmp [0x804a140 + 4 * eax]。这是一个间接跳转,从内存地址0x804a140 + 4 * eax中获取跳转目标。这可能是所谓跳转表中的一项。
https://stackoverflow.com/questions/23418524
复制相似问题