实验一 8259中断实验
一、实验目的
1.掌握PC机中断处理系统的基本原理。
2.掌握外部扩展中断源的设计方法。
3.学会编写中断服务程序。
二、实验原理
PC机用户可使用的硬件中断只有可屏蔽中断,由8259中断控制器管理。中断控制器用于接收外部的中断请求信号,经过优先级判别等处理后向CPU发出可屏蔽中断请求。
三、实验内容
实验要求实现8259控制器的IR1、IR3两路中断都可以通过IRQ向PC机发起中断请求,用SP1、SP2单次脉冲模拟两个中断源。IR1中断时,在它的中断服务程序中编程显示“IR1 OK AND EXIT!”; IR3中断时,在它的中断服务程序中编程显示“IR3 OK AND EXIT!”。
采用查询方式完成。
图1-1 扩展中断电路
四、实验步骤
1、连接线路
IR1与sp1用导线连接,IR2与sp2用导线连接,8259CS与Y0用导线连接。
2、编写程序
3、汇编、编译、连接及运行
五、实验程序
data segment
MY8259_ICW1 EQU ioport +280H ;实验系统中8259的ICW1端口地址
MY8259_ICW2 EQU ioport +281H ;实验系统中8259的ICW2端口地址
MY8259_ICW3 EQU ioport +281H ;实验系统中8259的ICW3端口地址
MY8259_ICW4 EQU ioport +281H ;实验系统中8259的ICW4端口地址
MY8259_OCW1 EQU ioport +281H ;实验系统中8259的OCW1端口地址
MY8259_OCW2 EQU ioport +280H ;实验系统中8259的OCW2端口地址
MY8259_OCW3 EQU ioport +280H ;实验系统中8259的OCW3端口地址
csreg dw ?
ipreg dw ? ;旧中断向量保存空间
irq_times dw 00h ;中断计数
msg1 db 0dh,0ah,'DVCC pci card Interrupt',0dh,0ah,'$'
msg2 db 0dh,0ah,'Press any key to exit!',0dh,0ah,'$'
msg3 db 0dh,0ah,'IR1 ok and exit!',0dh,0ah,'$'
msg4 db 0dh,0ah,'IR3 ok and exit!',0dh,0ah,'$'
data ends
stacks segment
db 100 dup (?)
stacks ends
code segment
assume cs:code,ds:data,ss:stacks,es:data
start: ;Enable Local Interrupt Input .386
cli
mov ax,data
mov ds,ax
mov es,ax
mov ax,stacks
mov ss,ax
mov dx,ioport_cent+68h ;设置 DVCC 卡中9054芯片io口,使能中断
in ax,dx
or ax,0900h
out dx,ax
mov al,int_vect ;保存原中断向量
mov ah,35h
int 21h
mov ax,es
mov csreg,ax
mov ipreg,bx
mov ax,cs ;设置新中断向量
mov ds,ax
mov dx,offset int_proc
mov al,int_vect
mov ah,25h
int 21h
in al, 21h ;设置中断掩码
and al, irq_mask_2_7
out 21h, al
in al, 0a1h
and al, irq_mask_9_15
out 0a1h, al
mov ax,data
mov ds,ax
mov dx,offset msg1
mov ah,09h
int 21h
mov dx,offset msg2
mov ah,09h
int 21h
MOV DX,MY8259_ICW1 ;初始化实验系统中8259的ICW1
MOV AL,13H ;边沿触发、单片8259、需要ICW4
OUT DX,AL
MOV DX,MY8259_ICW2 ;初始化实验系统中8259的ICW2
MOV AL,08H
OUT DX,AL
MOV DX,MY8259_ICW4 ;初始化实验系统中8259的ICW4
MOV AL,01H ;非自动结束EOI
OUT DX,AL
MOV DX,MY8259_OCW1 ;初始化实验系统中8259的OCW1
MOV AL,0F5H ;打开IR1和IR3的屏蔽位
OUT DX,AL
sti
loop1: mov ah,1 ;等待中断
int 16h
jnz exit ;按任意键退出
jmp loop1
exit: cli
mov bl, irq_mask_2_7 ;恢复中断掩码
not bl
in al, 21h
or al, bl
out 21h, al
mov bl, irq_mask_9_15
not bl
in al, 0a1h
or al, bl
out 0a1h, al
mov dx,ipreg ;恢复原中断向量
mov ax,csreg
mov ds,ax
mov ah,25h
mov al,int_vect
int 21h
mov dx,ioport_cent+68h ;设置 DVCC 卡中9054芯片io口,关闭中断
in ax,dx
and ax,0f7ffh
out dx,ax
mov ax,4c00h
int 21h
int_proc proc far
cli
push ax
push dx
push ds
QUERY: MOV DX,MY8259_OCW3 ;向8259的OCW3发送查询命令
MOV AL,0CH
OUT DX,AL
NOP
NOP
NOP
MOV DX,MY8259_OCW3
IN AL,DX ;读出查询字
TEST AL,80H ;判断中断是否已响应
JZ QUERY ;没有响应则继续查询
AND AL,07H
CMP AL,01H
JE IR1ISR ;若为IR1请求,跳到IR1处理程序
CMP AL,03H
JE IR3ISR ;若为IR3请求,跳到IR3处理程序
JMP EOI
IR1ISR: mov dx,offset msg3 ;IR1处理,显示字符串'IR1 ok and exit'
mov ah,09h
int 21h
JMP EOI
IR3ISR: mov dx,offset msg4 ;IR3处理,显示字符串'IR3 ok and exit'
mov ah,09h
int 21h
EOI: MOV DX,MY8259_OCW2 ;向实验系统中8259发送中断结束命令
MOV AL,20H
OUT DX,AL
mov al,20h ;Send EOI
out 0a0h,al
out 20h,al
pop ds
pop dx
pop ax
本文档为【微机原理实验报告资料】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。