X86 下面的汇编指令对添加SD-8(%rbp),%xmm0有什么作用?

X86 下面的汇编指令对添加SD-8(%rbp),%xmm0有什么作用?,x86,x86-64,sse2,assembly,memory-access,X86,X86 64,Sse2,Assembly,Memory Access,我想弄清楚汇编指令到底做了什么 addsd -8(%rbp), %xmm0 我知道这是一个在x86-64机器上使用SSE2的浮点加法。另外,我知道%xmm0是一个寄存器。然而,我不确定-8(%rbp)是什么意思。手册在这方面有点混乱 基本上,问题是,-8(%rbp)是指它从寄存器(可能是rbp的最后8个字节)获取值,还是从内存获取值(从rbp中包含的地址偏移量-8处的浮点值) 你的第二个猜测是正确的。它正在访问从地址rbp偏移的-8字节处的值 假设采用AT&T语法,此指令从地址rbp-8加

我想弄清楚汇编指令到底做了什么

addsd   -8(%rbp), %xmm0
我知道这是一个在x86-64机器上使用SSE2的浮点加法。另外,我知道%xmm0是一个寄存器。然而,我不确定-8(%rbp)是什么意思。手册在这方面有点混乱


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

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


假设采用AT&T语法,此指令从地址
rbp-8
加载一个8字节的
double
,并将其添加到
xmm0
下半部分的值中。您的第二个猜测是正确的。它正在访问从地址
rbp
偏移的
-8
字节处的值。嘿,神秘人,你能指出一个容易解释这一点的参考吗?令人困惑的at&T语法再次出现。你能指出一个容易解释这一点的参考吗?大多数汇编语言教程和参考资料都被彻底弄糊涂了(或者我觉得是这样的,也许只有我一个人),我现在正试图找到一本。但是相对寻址的事情可能有点基本。