gpt4 book ai didi

assembly - jmp 指令 *%eax

转载 作者:行者123 更新时间:2023-12-03 19:17:58 28 4
gpt4 key购买 nike

在 Google Native Client 的论文中,作者定义了一个 nacljmp如这两条指令:

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

首先,我可以看到他们清除了 5 个最低有效位,以便在跳转到指针之前将指针向下舍入到 32 字节对齐边界。也许对于使用低 5 位数据的标记指针实现。

但是, %eax之前的星号是什么意思? ?

我搜索了许多关于 x86 程序集的教程,但运气不佳。

最佳答案

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

Jump near, absolute indirect, address given in r/m32.



同类型跳转指令的另一种形式是 jmp *(%eax)对应于 jmp [eax]在英特尔语法中。它将跳转到存储在寄存器 eax 指向的 32 位内存位置的地址。 .

关于assembly - jmp 指令 *%eax,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30802831/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com