2012-05-01 93 views
7

我試圖找出彙編指令實際執行下面的彙編指令做了什麼添加-8(%rbp),%xmm0?

addsd -8(%rbp), %xmm0 

我知道,這是一個浮點加法的x86-64的機器SSE2上。另外,我知道%xmm0是一個寄存器。但是,我不確定的是-8(%rbp)的含義。這些手冊有點令人困惑。基本上,問題是,-8(%rbp)是否意味着它從一個寄存器取得一個值(可能是rbp的最後8個字節),還是從內存取得一個值(在偏移處的浮點值從包含在rbp中的地址開始-8)。

+2

你的第二個猜測是正確的。它正在訪問地址爲'rbp'的偏移量爲'-8'字節的值。 – Mysticial

+0

嘿Mysticial,你能指出一個很容易解釋這個的參考嗎? – owagh

+0

混淆AT&T語法再次觸發。 – harold

回答

7

你的第二個猜測是正確的。它正在訪問地址爲rbp-8字節的值。

假設AT & T語法,該指令從地址rbp - 8加載的8字節double並將其添加到在xmm0下半部分中的值。

+0

你能指出一個可以很容易解釋的參考嗎?大部分的彙編語言教程和參考文獻都被無望地混淆了(或者我覺得,也許只是我) – owagh

+0

我試圖找到一個現在。但是相對的處理可能有點基本方面。 – Mysticial

+3

這裏是:http://en.wikibooks.org/wiki/X86_Assembly/GAS_Syntax – Mysticial