带有括号和地址的 x86 中的 CMP

Kon*_*nor 3 x86 assembly att

我在 x86 汇编语言中有以下行,我不知道它的作用...

cmp %eax,0x80498d4(,%ebx,4)
Run Code Online (Sandbox Code Playgroud)

我知道它正在比较语句的两半,但我不知道地址在其中的作用以及括号的作用。一些澄清将不胜感激!

500*_*ror 5

在 AT&T 语法中,这种形式表示

偏移量(基本寄存器、索引寄存器、索引刻度)

所以表示的地址是BASE REGISTER(如果存在)+ INDEX * SCALE(如果存在)+ OFFSET的值,所以

EBX*4 + 0x80498d4 在你的情况下。