" mov offset(%rip),%rax"做?

时间:2015-04-02 20:21:27

标签: assembly x86 att

rax是否得到偏移加上该指令的地址,或下一个?从微码的角度来看,如果答案是下一条指令可能会更容易。

2 个答案:

答案 0 :(得分:7)

下一个。这是x86的一般规则(另见分支)。

在英特尔手册第2卷第2.2.1.6节RIP相对寻址:

  

新的寻址形式,RIP相对(相对指令指针)寻址,以64位模式实现。通过向下一条指令的64位RIP添加位移来形成有效地址。

答案 1 :(得分:1)

请注意,symbol_name(%rip)是从此处计算到达symbol_name所需的偏移量,而不是将symbol_name的绝对地址作为偏移量添加到RIP。

但是,是的,对于像mov 4(%rip), %rax这样的数字偏移量,将从指令末尾的4个字节开始加载8个字节。