2015-10-23 167 views
2

我應該顯示數字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 
+1

你做'20,19,...,3,2,1,0'。試試'mov ecx,19'。 –

+1

注意:'mov eax,1'之前的'sub eax,eax'是不必要的。 – Michael

回答

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 
相關問題