2012-05-01 9 views
7

私はそれがSSE2とx86-64のマシン上の浮動小数点加算だということを知っているアセンブリ命令が実際に次のアセンブリ命令は何ですか?-8(%rbp)、%xmm0?

addsd -8(%rbp), %xmm0 

を何を把握しようとしています。また、私は%xmm0がレジスタであることを知っています。しかし、私がよく分からないのは、-8(%rbp)という意味です。マニュアルは少し混乱しています。

基本的には、-8(%rbp)はレジスタ(多分rbpの最後の8バイト)から値を取っているか、メモリから値をとっていることを意味します(オフセットrbpに含まれるアドレスから-8の値)。

+2

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

+0

ちょっと不思議そう、これを簡単に説明するリファレンスを指摘できますか? – owagh

+0

AT&T構文の混乱が再び発生します。 – harold

答えて

7

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

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

+0

これを簡単に説明する参照先を指摘できますか?アセンブリ言語のチュートリアルやリファレンスのほとんどは、難読化されていません(または、私はおそらくそれは私です) – owagh

+0

私は今すぐ見つけようとしています。しかし、相対的なアドレッシングの問題は、基本的な面で少しかもしれません。 – Mysticial

+3

ここにあります:http://en.wikibooks.org/wiki/X86_Assembly/GAS_Syntax – Mysticial

関連する問題