我应该显示数字1到20,但我无法弄清楚出了什么问题。一开始它是正确的,但它将是21而不是20。
INCLUDE Irvine32.inc
TITLE 1through20
.data
.code
main proc
sub eax, eax
mov eax, 1
call writeDec
call crlf
mov ecx, 20
L1:
add eax, 1
call writeDec
call crlf
loop L1
exit
main EndP
END main
答案 0 :(得分:1)
您正在单独显示第一个数字,然后显示一个显示20个数字的循环。总共显示21个数字,这个数字太多了!
只需从程序中删除3行(在此解决方案中保留sub eax, eax
):
sub eax, eax
;;;;;;;;;;;;;;;;mov eax, 1
;;;;;;;;;;;;;;;;call writeDec
;;;;;;;;;;;;;;;;call crlf
mov ecx, 20
L1:
add eax, 1
call writeDec
call crlf
loop L1