I have the following line in x86 Assembly language that I don\'t know what it does...
cmp %eax,0x80498d4(,%ebx,4)
I know it\'s comparing th
In AT&T syntax this form represents
OFFSET(BASE REGISTER, INDEX REGISTER, INDEX SCALE)
so the address represented is the value of BASE REGISTER (if present) + INDEX * SCALE (if present) + OFFSET, so
EBX*4 + 0x80498d4 in your case.
That is AT&T syntax:
cmp %eax,0x80498d4(,%ebx,4)
The equivalent in Intel syntax is:
cmp [080498D4H + EBX*4],EAX
It means that it compares the DWORD content at the address [0x80498D4 + 4*EBX]
with the content of the EAX
register and sets the processor flags as if these two values were subtracted from each other. After that, you can use these flags to do, for instance, a conditional jump.