92 lines
2.7 KiB
NASM
Executable File
92 lines
2.7 KiB
NASM
Executable File
DATA SEGMENT
|
||
EIGHT DB 7FH
|
||
TWO DB 5BH
|
||
FIVE DB 6DH
|
||
BAR DB 40H
|
||
A DB 77H
|
||
T DW 0FFH
|
||
DATA ENDS
|
||
|
||
CODE SEGMENT
|
||
ASSUME CS:CODE, DS:DATA
|
||
|
||
START:
|
||
MOV AX, DATA
|
||
MOV DS, AX
|
||
|
||
MOV DX, 283H ; 命令口
|
||
MOV AL, 10000000B ; 1|00(A组0方式)|0(PA输出)|0(PC4-7输出)|0(B组0方式)|0(PB输出)|0(PC0-3输出)
|
||
OUT DX, AL
|
||
|
||
|
||
LP:
|
||
MOV DX, 280H ; A口,控制位码
|
||
MOV AL, 10000000B ; 第1位,PA1置1
|
||
OUT DX, AL
|
||
MOV DX, 281H ; B口,控制段码
|
||
MOV AL, EIGHT ; 输出数据段定义的字符“8”
|
||
OUT DX, AL
|
||
CALL DELAY ; 延时后清零
|
||
|
||
MOV DX, 280H
|
||
MOV AL, 01000000B ; 第2位,PA2置1
|
||
OUT DX, AL
|
||
MOV DX, 281H
|
||
MOV AL, TWO ; 输出数据段定义的字符“2”
|
||
OUT DX, AL
|
||
CALL DELAY
|
||
|
||
MOV DX, 280H
|
||
MOV AL, 00100000B ; 第3位,PA3置1
|
||
OUT DX, AL
|
||
MOV DX, 281H
|
||
MOV AL, FIVE ; 输出数据段定义的字符“5”
|
||
OUT DX, AL
|
||
CALL DELAY
|
||
|
||
MOV DX, 280H
|
||
MOV AL, 00010000B ; 第4位,PA4置1
|
||
OUT DX, AL
|
||
MOV DX, 281H
|
||
MOV AL, FIVE ; 输出数据段定义的字符“5”
|
||
OUT DX, AL
|
||
CALL DELAY
|
||
|
||
MOV DX, 280H
|
||
MOV AL, 00001000B ; 第5位,PA5置1
|
||
OUT DX, AL
|
||
MOV DX, 281H
|
||
MOV AL, BAR ; 输出数据段定义的字符“-”
|
||
OUT DX, AL
|
||
CALL DELAY
|
||
|
||
MOV DX, 280H
|
||
MOV AL, 00000100B ; 第6位,PA6置1
|
||
OUT DX, AL
|
||
MOV DX, 281H
|
||
MOV AL, A ; 输出数据段定义的字符“A”
|
||
OUT DX, AL
|
||
CALL DELAY
|
||
|
||
JMP LP ; 无限循环
|
||
|
||
DELAY PROC
|
||
PUSH BX
|
||
MOV BX, T
|
||
DL1:
|
||
DEC BX
|
||
JNZ DL1
|
||
POP BX
|
||
; 将位码段码都置0,否则前一位显示的字符会在显示下一位字符显示前在该位上显示
|
||
MOV DX, 280H
|
||
MOV AL, 00000000B
|
||
OUT DX, AL
|
||
MOV DX, 281H
|
||
MOV AL, 0
|
||
OUT DX, AL
|
||
|
||
RET
|
||
DELAY ENDP
|
||
|
||
CODE ENDS
|
||
END START |