括号中的逗号在x86汇编的AT&T语法中是什么意思?

Sec*_*ret 3 x86 assembly att

(register1, register2, 4)AT&T装配意味着什么?

例如:

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

Car*_*rum 6

完整的AT&T基本/索引寄存器语法是:

offset(base, index, multiplier)
Run Code Online (Sandbox Code Playgroud)

你的offset领域是0,所以你只有这个(base, index, multiplier)部分.在您的情况下,您将eax寄存器的内容与位于的32位值进行比较esi + (ebx * 4).

在您可能更熟悉的英特尔语法中,这将被写为:

cmp [ebx*4 + esi], eax
Run Code Online (Sandbox Code Playgroud)