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

How to calculate the digit sum of an ascii string in assembler

我正在尝试用 nasm 计算 ascii 字符串的数字总和。为此,我尝试遍历单个字节并在 eax 中累加值,直到到达空字节。理论到此为止。但是行 add eax, byte[ebx] 带来了错误 "mismatch in operand sizes"。如何累加不同大小的操作数?

这是代码

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

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

感谢您的帮助。

简答:一条指令做不到。

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

movzx ecx, byte [ebx]
add   eax, ecx