如何计算汇编程序中ascii字符串的数字和

时间:2015-05-08 22:13:35

标签: assembly x86 nasm

我正在尝试用nasm计算ascii字符串的数字和。为了做到这一点,我试图迭代单个字节并在eax中累积值,直到我到达空字节。这个理论太多了。但是行add eax, byte[ebx]带来了错误“操作数大小不匹配”。如何累积不同大小的操作数?

这是代码

mov eax, 0
mov ebx, userInput; "abc"

readChar:
    cmp byte[ebx],0
    jz finished
    add eax, byte[ebx]
    inc ebx
    jmp readChar

感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

简短的回答:你不能用一条指令。

你需要获取字节值,对其进行零扩展,然后添加它。 例如:

movzx ecx, byte [ebx]
add   eax, ecx