我知道还有其他类似的问题,但我仍然无法理解它的()部分。有人可以为我拼写这种语法吗?感谢。
答案 0 :(得分:2)
cmp %eax,0x80498d4(,%ebx,4)
cmp 是比较汇编指令。它通过签名从左侧减去右参数并设置CPU EFLAGS寄存器来执行两个参数之间的比较。然后可以使用该EFLAGS寄存器进行条件分支/移动等。
第一个参数:`%eax(%eax寄存器中的值)
第二个参数: 0x80498d4(,%ebx,4)。这被读作offset ( base, index, scale )
在您的示例中,第二个参数的值是内存位置偏移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汇编指令语法的更多信息。