What does (register1, register2, 4)
mean in AT&T assembly?
For example:
cmp %eax, (%esi, %ebx, 4)
Carl Norum
The complete AT&T base/index register syntax is:
offset(base, index, multiplier)
Your offset
field is 0
, so you just have the (base, index, multiplier)
part. In your case, you're comparing the contents of the eax
register to the 32-bit value located at esi + (ebx * 4)
.
In the Intel syntax you might be more familiar with, this would be written as:
cmp [ebx*4 + esi], eax
来源:https://stackoverflow.com/questions/18650093/what-does-a-comma-in-a-parenthesis-mean-in-the-att-syntax-for-x86-assembly