汇编语言loop语句

DACON1: OUT DX,AL
INC AL
MOV CX,08H
DACON2: LOOP DACON2
cmp AL,0FFH
..........
这个loop语句到底是什么意思啊,如何实现AL的自增循环啊?
loop语句的使用条件是否是先将cx-1,如果cx>0就继续循环?
但是为何一直跳到DACON2 呢?

在汇编语言中,LOOP是循环指令,固定以CX控制循环次数,简化循环程序设计。
该指令书写格式:LOOP OPR(OPR是程序中的目标地址标号)
该指令执行步骤:(CX) ←(CX) −1;若(CX)≠0,则循环到标号处执行,否则顺序执行。
程序在使用LOOP指令之前应先将循环次数送入CX中。
例如:
MOV CX,10;设置循环次数
MOV AX,1
OPR1:
SHL AX,1
LOOP OPR1
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-10-09
loop语句的使用条件是否是先将cx-1,如果cx>0就继续循环?--对。

但是为何一直跳到DACON2 呢?
--故意耽误CPU的时间,放慢一点节奏,让其它的部分,能完成它们的任务。本回答被提问者采纳
第2个回答  2011-11-08
修改如下:
……
no_count:
add si,2
oopl: ;这里加上一个标号
loop next
mov rank[bx],dx
add bx,.2 ;加上逗号.
dec di
jne oopl ;目的地改为 oopl
ret
main endp
prognam ends
end start

试试看吧。
第3个回答  2011-11-07
shanyufei2010 的回答是正确的;loop是循环控制指令(无条件循环,格式是: loop 目标标号),所以不能作为标号,会引起误解.
第4个回答  2020-10-30

汇编语言loop指令

相似回答