关于C#:cmp?x,0x80498d4(,?x,4)是什么意思?

What does cmp %eax,0x80498d4(,%ebx,4) mean?

我知道还有其他一些与此类似的问题,但是我仍然很难理解它的()部分。有人可以帮我拼一下这个语法吗?谢谢。


1
cmp %eax,0x80498d4(,%ebx,4)

cmp是比较汇编指令。它通过从左减去右参数进行有符号运算来执行两个参数之间的比较,并设置CPU EFLAGS寄存器。然后可以使用此EFLAGS寄存器进行条件分支/移动等。

第一个参数:`x(x寄存器中的值)

第二个参数:0x80498d4(,x,4)。在您的示例中,第二个参数的值是内存位置偏移量0x80498d4 + base (which I believe defaults to zero if not included) + value in %ebx register * 4 (scaling factor)

注意:我相信这里的基为空,默认值为0。

您可以查看http://docs.oracle.com/cd/E19120-01/open.solaris/817-5477/ennby/index.html,以获取有关Intel x86汇编指令语法的更多信息。