为什么gcc在一条指令中发出0x0(%r13)而在另一条指令中发出(%r13)?

时间:2018-05-31 04:35:28

标签: gcc assembly x86-64 att

我正在调试一段包含以下指令的代码。

mov    %esi,0x0(%r13)

然后在另一个地方,我看到这样的指示:

mov    %esi,(%r13)

我认为前者将esi寄存器的内容移动到r13 + 0x0的内容给出的地址。有了这个逻辑,后者也应该产生同样的效果。

  1. 这些说明之间有什么区别吗?

  2. 为什么gcc以不同的方式写同一个东西?

  3. 编辑:已使用objdump -S生成反汇编。

0 个答案:

没有答案