簡體   English   中英

匯編cmp指令

[英]Assembly cmp instruction

以下cmp指令使我感到困惑:

%eax中,為0x18(%ESP,%EB​​X,4)

我知道它正在將arg1與arg2進行比較,但是arg2和括號中的內容到底發生了什么?

謝謝

它根據esp和ebx的值計算內存位置的地址。 您沒有指定使用的匯編符號,所以我只能猜測它是esp + 4 * ebx + 0x18。

這是at&t語法中的有效地址。 一般形式是displacement(base, index, scale) ,其中displacement是一個數字(地址), baseindex是寄存器,和scale是一個因子1248 計算得出的地址為displacement + base + index * scale 組件可以省略。

順便說一句,如果您願意,可以將gnu工具切換到intel語法模式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM