验证中...
语言: Assembly
最后更新于 2017-07-27 18:41
8254.asm
原始数据 复制代码
.model small
.data
mess db 'TPCA interrupt!', 0dh, 0ah, '$'
count db 10
.code
.startup
; 将中断服务程序的入口地址写入中断向量表
mov ax, cs
mov ds, ax
mov dx, offset IR10
mov ax, 2572h
int 21h
; 打开IR2中断屏蔽位
in al, 21h
and al, 0fbh
out 21h, al
; 打开IR10中断屏蔽位
in al, 0a1h
and al, 0fbh
out 0a1h, al
; 设置8254的计数器和方式
mov dx, 293h
mov al, 10h
out dx, al ; 计数器0,方式0
mov dx, 290h
mov al, 04h ; 初始计数器数值为4
out dx, al
sti
wait1:
cmp count, 0
jnz wait1
; 屏蔽IR2中断
in al, 21h
or al, 04h
out 21h, al
sti
; 程序运行结束,返回DOS
mov ah, 4ch
int 21h
IR10:
mov ax, @data
mov ds, ax
mov dx, offset mess
mov ah, 09
int 21h
dec count
mov dx, 290h
mov al, 04h ; 初始计数器数值为4
out dx, al
mov al, 20h
out 20h, al
out 0a0h, al
iret
end

评论列表( 0 )

你可以在登录后,发表评论

5th_float_left_gitee 5th_float_left_close