2017-01-11 43 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,你有一个无限循环。