微机原理-虚拟仿真实验-数码管显示电路汇编代码
Data segment
PortA equ 404H ; 8255的PA口地址
xz db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h ;定义0~9的显示代码
s db "Display 0~9 . Press any key to exit ...",0dh,0ah,"$" ;程序功能提示
Data ends
Code segment
assume cs:code,ds:data
Start:mov ax,data
mov ds,ax
mov dx,offset s ;显示提示
mov ah,9
int 21h
mov dx, PortA+3
mov al,80H
out dx,al ;PA、PB口初始化为基本输出方式
L0:lea si,xz
L1:mov al,[si] ;显示数字
mov ah,0fh ;置位选初值,四个数码管同时显示
mov dx,PortA
out dx,al
mov al,ah
mov dx,PortA+1
out dx,al
call de ;延时
mov ah,0bh
int 21h ; 检测有无按键,返回AL=0FFh(有按键)或0(无按键)
cmp al,0FFh
jz Exit
inc si ;准备显示下一数字
cmp si,0ah ;判断是否显示完 "9"
jnz l1
jmp l0
Exit:mov ah,4ch ; 结束程序
int 21h
de proc near ; 循环延时子程序
push cx
push bx
mov cx,100
d1: mov bx,8000
d2: dec bx
jnz d2
loop d1
pop bx
pop cx
ret
de endp
Code ends
end Start