【发布时间】:2015-06-12 12:15:11
【问题描述】:
在 Google Native Client 的论文中,作者将nacljmp 定义为以下两条指令:
and $0xffffffe0, %eax # Clears the 5 least significant bits in %eax.
jmp *%eax
首先,我可以看到他们清除了 5 个最低有效位,以便在跳转到它之前将指针向下舍入到 32 字节对齐边界。也许对于使用低 5 位数据的标记指针实现。
但是,%eax 之前的星号是什么意思?
我搜索了许多关于 x86 汇编的教程,但没有太多运气。
【问题讨论】:
-
可能是
eax的值所指向的内存地址的32位数据内容? -
@lurker:是的,这是一个间接跳转,但它是
*%eax没有括号。