程序集x86:变量和寄存器之间的比较

时间:2015-03-04 09:02:17

标签: assembly

我试图将变量与寄存器进行比较并增加此变量,但没有成功。

section .data
i : DB 0x0

global foo:function

foo:
cmp i, rdx
...
inc i

但纳斯姆并不高兴。 我找到了一个解决方案,将0x0存储在寄存器中,cmp和inc存储在该寄存器中。但我很好奇,你能操纵变量吗?

THX

1 个答案:

答案 0 :(得分:2)

在NASM中,引用变量总是通过使用方括号 [] 来完成。

NASM不存储有关变量的大小信息。这意味着inc i还不够。在这里,您需要编码inc byte [i]

由于变量 i 被定义为一个字节,因此您不希望将其与像RDX这样的qword寄存器进行比较。您可以对cmp [i],dl进行编码。