2012-04-20 147 views
0

可能重複:
Confusing add command in x86 assembly口譯彙編代碼比較

我想了解大會的以下兩行:

8048d74:  03 44 9e fc    add -0x4(%esi,%ebx,4),%eax 
8048d78:  39 04 9e    cmp %eax,(%esi,%ebx,4) 

我覺得(%esi,%ebx,4)是一個有效的地址(BASE,INDEX,SCALE)

我相信add命令取得%eax的值,將它加到[esi + ebx * 4 + mem_location]的值並將其存儲在同一個地方。

然後,cmp指令測試[esi + ebx * 4 + mem_location]處的值是否等於%eax處的值。

所以,只有當兩個值中的一個加上0時,纔會返回true,對嗎?

回答

1

這似乎是AT & T格式的源代碼,其中的順序是op source, dest。這意味着第一個是將有效地址處的值添加到 eax。然後,第二行將第二個值與eax進行比較。