NASM - 取决于注册的不同行为

时间:2014-01-31 22:44:01

标签: assembly nasm

我有一个取自用户的字符串,保存到名为 num 的“变量”中。现在,我将第一个字符加载到此字符串中以进行进一步处理。看起来像是

mov rax, [num]
cmp rax, '5'
je character_equal_five

我后来遇到了一些问题所以我开始调试这一行,对于像“522314”这样的输入,我发现rax寄存器的值大概是2000,而它应该是5的ascii代码。做

xor rax, rax
mov rax, [num]

也没有帮助。所以我最终完成了这个

mov al, [num]

终于成功获得了可靠的结果。我的问题是:为什么会发生?为什么我不能使用更大的寄存器来执行此任务?

0 个答案:

没有答案
相关问题