8253方式0计数器实验

来源:互联网 发布:网络尖兵 路由器 编辑:程序博客网 时间:2024/04/28 06:19
 ;*************************;
;*  8253方式0计数器实验  *;
;*************************;
io8253a        equ 283h
io8253b        equ 280h
code segment
    assume  cs:code
start:
     mov dx,283h ; 设置8253通道0为工作方式2,二进制计数
     mov al,14h
     out dx,al
     mov dx,280h
     mov al,0fh
     out dx,al ; 送计数初值为0FH        
lll: mov al,80h ;计数器0锁存命令
     mov dx,283h
     out dx,al
     mov dx,280h
     in al,dx ; 读计数初值
     call disp ; 调显示子程序
     push dx 
     mov ah,06h
     mov dl,0ffh
     int 21h
     pop dx
     jz lll
     mov ah,4ch
     int 21h ; 退出
disp proc near        ;显示子程序
     push dx
     mov dx,280h; 首先取低四位    
     in al,dx
     and al,0fh
     mov dl,al
     cmp dl,09 ; 判断是否<=9
     jle  num         ;若是则为'0'-'9',ASCII码加30H
     add dl,07 ; 否则为'A'-'F',ASCII码加37H
num: add dl,30h
     mov ah,02h
     int 21h; 显示    
     mov dl,13
     int 21h ; 加回车符    
     mov dl,10
     int 21h ; 加换行符    
     pop dx
     ret              ;子程序返回
disp endp
code ends
end start
原创粉丝点击