📄 4-d79.asm
字号:
Z8279 EQU 212H
D8279 EQU 210H
DATA SEGMENT
DATA ENDS
STACK SEGMENT STACK
STA DW 32 DUP(?)
TOP DW ?
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:CODE,SS:STACK
START: PUSH CS ;初始化
POP DS
MOV DX,Z8279 ;左边输入,八位显示外部译码八位显示
MOV AL,00H
OUT DX,AL
;清FIFO RAM
MOV AL,0C2H
OUT DX,AL
MOV CX,8 ;LED显示'-'.
MOV DX,D8279
MOV AL,40H
LDP: OUT DX,AL
LOOP LDP
WAIIT: MOV DX,Z8279 ;检测是否有键按下
TST: IN AL,DX
AND AL,0FH
CMP AL,00H
JE TST ;AL=0,无键按下则等待; AL<>0,有键按下
MOV AL,40H ;设置读FIFO RAM命令
OUT DX,AL
MOV DX,D8279 ;读入FIFO RAM内容
IN AL,DX
PUSH AX
MOV DX,D8279
LEA BX,LED ;查表,将键值字形码放入AL中
XLAT
OUT DX,AL ;将AL中内容写到数码管上
POP AX
CMP AL,15 ;是结束符(F键)则结束
JE FINI
JMP WAIIT ;等待下一次键输入
FINI: MOV DX,Z8279
MOV AL,0D1H ;清除显示RAM
OUT DX,AL
FINI1: IN AL,DX
AND AL,80H
JNZ FINI1 ;未清除完等待,或用延时完成(MOV CX,0FFH
; DELAY : LOOP DELAY)
MOV AL,90H ;置显示RAM地址为0,写入数据后地址自动加1
OUT DX,AL
MOV DX,D8279 ;显示" End"
MOV AL,5EH
OUT DX,AL
MOV AL,54H
OUT DX,AL
MOV AL,79H
OUT DX,AL
MOV CX,5 ;填充5个空
MOV AL,0
WZ: OUT DX,AL
LOOP WZ
JMP $ ;结束后再按键,则有蜂鸣器声响
LED DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H;0-9,A-F
DB 80H,04H,40H,46H,48H,50H,00H,00H; . , - + :
CODE ENDS
END START
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -