jmp指令*%eax

问题描述 投票:2回答:1

在针对Google Native Client的论文中,作者将nacljmp定义为以下两个说明:

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

首先,我看到他们清除了5个最低有效位,以使该指令在跳转到32位之前对齐。但是,星号在%eax之前是什么意思?我搜索了很多有关x86汇编的教程,但运气不佳。

assembly x86 att
1个回答
7
投票

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.