2017-01-11 77 views
0

我提出用匯編語言一個簡單的程序,執行我使用MS-DOS (DOSBox)這裏的代碼:爲什麼我的程序有無限循環?

.model small 
.code 
org 100h 

mulai: 

mov ah, 02h 
mov dl, 'Z' 
mov cx, 10h 

lagi: 

int 21h 
inc dl 
inc cx 

loop lagi 
int 20h 

end mulai 

我試圖loop實現,但獲得infinite loop,所以有什麼錯我的代碼?

+1

並且由於您使用的是'org 100h',您是否試圖製作一個COM程序(而不是EXE)。如果是這樣,你會想使用'.model tiny'? –

+0

如果你試圖循環16次(10h),那麼你只需要刪除'dec cx',因爲循環指令自動遞減每個對象的'cx' –

+0

爲什麼不先問你的調試器? – Ped7g

回答

5

loop遞減cx,並跳轉到如果cx給出的地址不爲0

既然你在每次循環迭代增量的cxcx永遠不會成爲0,你有一個無限循環。