我们基本上应该使用ReadChar从用户读取输入的数字,然后通过减去30h将其转换为十进制。出于某种原因,输出是随机字符,而不是数字。有人能告诉我我做错了什么吗?
.data
XValue BYTE "Input X = ", 0
YValue BYTE "Input Y = ", 0
WValue BYTE "Output W = ", 0
A DWORD 200
X DWORD 0
Y DWORD 0
W DWORD 0
Loc1 DWORD ?
Loc2 DWORD ?
Loc3 DWORD ?
sum DWORD ?
.code
main proc
mov ecx, 4
mov edx, OFFSET XValue ;
call WriteString ;
L1:
mov eax, 10
mul X
mov X, eax
call ReadChar
sub eax, 30h
add eax, X
mov X, eax
call WriteChar
loop L1
call WriteChar
mov eax, X
call Crlf发布于 2022-03-12 11:47:25
您使用的是WriteChar而不是ReadChar。
https://stackoverflow.com/questions/71446638
复制相似问题