8

アセンブリ命令が実際に何をするのかを理解しようとしています

addsd   -8(%rbp), %xmm0

これは、SSE2を搭載したx86-64マシンでの浮動小数点の追加であることを私は知っています。また、%xmm0がレジスターであることも知っています。ただし、私にはわからないのは、-8(%rbp)の意味です。マニュアルはそれについて少し混乱しています。

基本的に、問題は、-8(%rbp)は、レジスタから値を取得していることを意味しますか(おそらく、rbpの最後の8バイト)、メモリから値を取得していることを意味します(-8のオフセットでの浮動小数点値rbpに含まれるアドレス)。

4

1 に答える 1

8

あなたの2番目の推測は正しいです。-8アドレスからオフセットされたバイトの値にアクセスしていますrbp

AT&T構文を想定すると、この命令はdoubleアドレスから8バイトをロードし、それを。rbp - 8の下半分の値に追加しますxmm0

于 2012-05-01T15:35:28.887 に答える