📄 zr.asm
字号:
ioport equ 0d400h-0280h
PORT0 EQU ioport+2B0H ;8279 DATA PORT
PORT1 EQU ioport+2B1H ;8279 CTRL PORT
DATA SEGMENT
LEDMOD EQU 10H ;右端输入 八位字符显示
;外部译码键扫描方式,双键互锁
LEDFEQ EQU 38H ;扫描速率
LEDCLS EQU 0D1H ;清除
LEDWR0 EQU 80H ;设定的将要写入的显示
LED DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39h,5EH,79h,71h
MESG DB 'Input a number (0--F),space key is exit:'
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
MOV DX ,PORT1
MOV AL,LEDMOD ;置8279工作方式
OUT DX,AL
MOV AL,LEDFEQ ;置键盘扫描速率
OUT DX,AL
MOV AL,LEDCLS ;清除 LED 显示
OUT DX,AL
MOV DX,PORT1
MOV AL,90H
OUT DX,AL
MOV DX,PORT0
MOV AL,40H
OUT DX,AL
MOV AL,0H
OUT DX,AL
MOV AL,0EFH
OUT DX,AL
MOV AL,27H
OUT DX,AL
MOV AL,5BH
OUT DX,AL
MOV AL,7FH
OUT DX,AL
A: MOV DX,OFFSET MESG ;显示提示信息
MOV AH,09H
INT 21H
MOV AH,01H ;从键盘接收字符
INT 21H
CMP AL,‘ ’
JE EXIT
CMP AL,3AH
JL B
ADC DL,7H
B: SUB AL,30H ;将所得字符的ASCII码减30H
MOV BX,OFFSET LED ;bx为数码表的起始地址
XLAT ;求出相应的段码
MOV DX,PORT0 ;从8279的数据口输出
OUT DX,AL
JMP A ;转A
EXIT:MOV AH,4CH
INT 21H
CODE ENDS
END START
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -