解释汇编代码比较

时间:2012-04-20 22:26:53

标签: memory assembly

  

可能重复:
  Confusing add command in x86 assembly

我想了解这两行大会:

8048d74:       03 44 9e fc             add    -0x4(%esi,%ebx,4),%eax
8048d78:       39 04 9e                cmp    %eax,(%esi,%ebx,4)

我认为(%esi,%ebx,4)是表单的有效地址(BASE,INDEX,SCALE)

我相信add命令在%eax处取值,将其添加到[esi + ebx * 4 + mem_location]的值并将其存储在同一位置。

然后,cmp指令测试[esi + ebx * 4 + mem_location]的值是否等于%eax的值。

因此,只有在添加的两个值中的一个为0时才会返回true,对吗?

1 个答案:

答案 0 :(得分:1)

这似乎是AT& T格式源代码,其中订单为op source, dest。这意味着第一个是将有效地址的值添加到 eax。然后,第二行将第二个值与eax进行比较。