CODE SEGMENT ;
ASSUME CS:CODE
IOCON EQU 8006H
IOA EQU 8000H
IOB EQU 8002H
IOC EQU 8004H
START:
MOV AL,90H
MOV DX,IOCON
OUT DX,AL
NOP
BEGIN: NOP
NOP
MOV AL,0
MOV DX,IOA
IN AL,DX
NOP
TEST AL,01
JNZ BEGIN
MOV AL,01
S1: MOV BL,8
S2: MOV CX,8
A1: RCL AL,1
NOP
MOV DX,IOB
OUT DX,AL
MOV BX,20
A2: INC BX
JNZ A2
LOOP A1
SUB BL,1
JNZ A2
Q3: MOV BL,8
Q4: MOV CX,8
B1: RCR AL,1
NOP
MOV DX,IOB
OUT DX,AL
MOV BX,20
B2: INC BX
JNZ B2
LOOP B1
ADD BL,1
JNZ Q4
JMP BEGIN
CODE ENDS
END START
这是一个是流水灯左移,我想后面再循环右移回来,,但Q3之后的代码没有执行!求教!!
------解决方案--------------------------------------------------------
到不了 Q3 说明 BL 没能为 1 ,确实从上面来看,BX 为 0 才会到 LOOP 指令再到下面,这样 BL 确实无法为 1 了;所以,涉及到的 BX 或 BL 条件判断上有问题。