【汇编语言与微机原理】实验四:8259单脉冲触发中断

实验目的

掌握可编程中断控制器8259的一般使用方法
掌握8259初始化的编程方法及中断服务程序的编写方法、中断程序的调试方法

实验内容

用单脉冲按钮的正脉冲输出作为中断控制器8259的中断源产生中断请求,在中断服务程序中对中断的次数进行计数,并将计数值显示在数码管的最右边两位,中断10次程序结束。

	.MODEL TINY
	.DATA 
	cnt db ?
	done db ?
	ReDisplayFlag db 0
	buffer db 8 dup (?)
	EXTRN initKeyDisplay:near,Display8:near
	.CODE
start:
	mov ax,@data
	mov ds,ax
	mov es,ax
	cli
	push es
	mov ax,0
	mov es,ax
	
	mov di,8H*4
	mov ax,offset intproc
	mov es:[di],ax
	mov ax,seg intproc
	mov es:[di+2],ax
	pop es
	call initKeyDisplay
	mov dx,250H
	mov al,13H
	out dx,al
	mov dx,251H
	mov al,08H
	out dx,al
	mov al,01H
	out dx,al
	mov al,0FEH
	out dx,al
	mov cnt,0
	mov done,0
	mov redisplayflag,1
	sti 
label1: 
	lea si,buffer              
	call display8
	cmp redisplayflag,0
	call leddisplay
	jz label1
	mov redisplayflag,0
	cmp done,1
	jnz label1
	mov ax,4c00h
	int 21h
intproc proc far
	push ax
	push ds
	sti
	mov ax,seg done
	mov ds,ax
	mov redisplayflag,1
	inc cnt
	cmp cnt,10
	jnz exit
	mov done,1
exit:
	cli
	mov al,20H
	mov dx,250H
	out dx,al
	pop ds
	pop ax
	iret
intproc endp
leddisplay proc near
	mov al,cnt
	mov buffer,al
	mov buffer+1,10H
	mov buffer+2,10H
	mov buffer+3,10H
	mov buffer+4,10H
	mov buffer+5,10H
	mov buffer+6,10H
	mov buffer+7,10H
	ret
leddisplay endp
end start
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zombo_tany

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值