为什么我的程序有无限循环?

J. *_*isy 0 assembly dos dosbox

我用汇编语言制作了一个简单的程序,为了实现我在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
Run Code Online (Sandbox Code Playgroud)

我试过loop实现但是获得了infinite loop,所以我的代码有什么问题?

nos*_*nos 5

loop递减cx,并跳转到给定的地址,如果cx不是0.

因为你cx在每次循环迭代时递增,所以cx永远不会变为0并且你有一个无限循环.