我正在尝试用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
感谢您的帮助。
答案 0 :(得分:3)
简短的回答:你不能用一条指令。
你需要获取字节值,对其进行零扩展,然后添加它。 例如:
movzx ecx, byte [ebx]
add eax, ecx