INT 21H
CODE ENDS
END START
6、将8255的A口PA0~PA6分别与七段数码管的段码驱动输入端a~g相连,编程从键盘输入一位十进制数字(0~9),在七段数码管上显示出来,请完善下列程序(各口地址设为288H—28bH)。
显示字形g e f d c b a 段码
0 0 1 1 1 1 1 1 3fh
1 0 0 0 0 1 1 0 06h
2 1 0 1 1 0 1 1 5bh
3 1 0 0 1 1 1 1 4fh
4 1 1 0 0 1 1 0 66h
5 1 1 0 1 1 0 1 6dh
6 1 1 1 1 1 0 1 7dh
7 0 0 0 0 1 1 1 07h
8 1 1 1 1 1 1 1 7fh
9 1 1 0 1 1 1 1 6fh
data segment
led db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh
mesg1 db 0dh,0ah,'Input a num (0--9h):',0dh,0ah,'$'
data ends
code segment
assume cs:code,ds:data
start: mov ax,data
mov ds,ax
mov dx , 28bh
mov ax , 80h
out dx,al
sss: mov dx, __________ ;显示提示信息
mov ah,09h
int 21h
____________
____________
cmp al,'0'
jl exit
cmp al,'9'
jg exit
sub al,30h
____________;bx为数码表的起始地址
xlat ;求出相应的段码
mov dx,288h ;从8255的A口输出
__________
jmp sss
exit: mov ah,4ch