8

我试图弄清楚汇编指令实际上做了什么

addsd   -8(%rbp), %xmm0

我知道这是带有 SSE2 的 x86-64 机器上的浮点加法。另外,我知道 %xmm0 是一个寄存器。但是,我不确定 -8(%rbp) 是什么意思。手册对此有点混乱。

基本上,问题是,-8(%rbp) 是否意味着它是从寄存器中获取一个值(可能是 rbp 的最后 8 个字节),还是从内存中获取一个值(从 -8 偏移的浮点值rbp 中包含的地址)。

4

1 回答 1

8

你的第二个猜测是正确的。它正在访问-8从 address 偏移的字节处的值rbp

double假设 AT&T 语法,该指令从地址加载一个 8 字节rbp - 8,并将其添加到xmm0.

于 2012-05-01T15:35:28.887 回答