我试图将变量与寄存器进行比较并增加此变量,但没有成功。
section .data
i : DB 0x0
global foo:function
foo:
cmp i, rdx
...
inc i
但纳斯姆并不高兴。 我找到了一个解决方案,将0x0存储在寄存器中,cmp和inc存储在该寄存器中。但我很好奇,你能操纵变量吗?
THX
答案 0 :(得分:2)
在NASM中,引用变量总是通过使用方括号 [] 来完成。
NASM不存储有关变量的大小信息。这意味着inc i
还不够。在这里,您需要编码inc byte [i]
。
由于变量 i 被定义为一个字节,因此您不希望将其与像RDX这样的qword寄存器进行比较。您可以对cmp [i],dl
进行编码。