![](/img/trans.png)
[英]Fastest way to calculate a digit-sum for a large number (as a decimal string)
[英]How to calculate the digit sum of an ascii string in assembler
我正在尝试使用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
谢谢你的帮助。
简短的答案:您不能在一个指令中。
您需要获取字节值,将其零扩展,然后添加。 例如:
movzx ecx, byte [ebx]
add eax, ecx
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.