jmp指令asterisk%eax

时间:2015-06-12 12:15:11

标签: assembly x86 att

在Google Native Client的论文中,作者将nacljmp定义为以下两条指令:

and    %eax, 0xffffffe0 // Clears the 5 least significant bits in %eax.
jmp    *%eax

首先,我可以看到它们清除了5个最低有效位,使指令在跳转到之前进行32位对齐。但是,在%eax之前,星号是什么意思?我已经搜索了许多关于x86程序集的教程而没有太多运气。

1 个答案:

答案 0 :(得分:7)

jmp *%eaxjmp eax的AT& T语法,是jmp r/m32的一种形式。它将跳转到寄存器eax中包含的地址:

  

跳转到r / m32中给出的绝对间接地址。

相同类型的跳转指令的另一种形式是jmp *(%eax),它对应于Intel语法中的jmp [eax]。它将跳转到寄存器eax指向的32位存储单元中存储的地址。