47 lines
1.2 KiB
NASM
Executable File
47 lines
1.2 KiB
NASM
Executable File
DATA SEGMENT
|
||
T DW 0FFH
|
||
DATA ENDS
|
||
|
||
CODE SEGMENT
|
||
ASSUME CS:CODE, DS:DATA
|
||
|
||
START:
|
||
MOV AX, DATA
|
||
MOV DS, AX
|
||
|
||
MOV DX, 283H ; 命令口
|
||
MOV AL, 10010000B ; 1|00(A组0方式)|1(PA输入)|0(PC4-7输出)|0(B组0方式)|0(PB输出)|0(PC0-3输出)
|
||
OUT DX, AL
|
||
|
||
MOV DX, 281H ; B口
|
||
MOV AL, 00H ; LED全置0
|
||
OUT DX, AL
|
||
|
||
MOV DX, 280H ; A口
|
||
IN AL, DX ; 读入到AL
|
||
|
||
MOV DX, 281H ; B口
|
||
LP:
|
||
OUT DX, AL ; 从B口输出AL
|
||
CALL DELAY ; 延时
|
||
ROR AL, 1 ; ROR(Rotate Right)把AL向右移1位,移出的位补到左边,实现走马灯
|
||
JMP LP ; 无限循环
|
||
|
||
DELAY PROC
|
||
PUSH BX
|
||
PUSH AX
|
||
MOV BX, T
|
||
MOV AX, T
|
||
DL1:
|
||
DL2:
|
||
DEC BX
|
||
JNZ DL1
|
||
DEC AX
|
||
JNZ DL2
|
||
POP AX
|
||
POP BX
|
||
RET
|
||
DELAY ENDP
|
||
|
||
CODE ENDS
|
||
END START |