多级嵌套的中断试验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一.实验目的
(1)掌握中断在计算机系统中的作用;
(2)了解可以响应中断请求的条件和时刻,响应中断的过程和实现方案;理解使用中断隐指令的必要性;
(3)了解中断处理的完整过程,开中断,关中断操作的作用,保存现场信息和恢复现场信息必须确保完整完成的含义和可行措施;
(4)掌握确定中断向量,设计中断处理程序的操作步骤和实现方法;二.实验原理
1.1中断电路
TH-union教学机中断电路的总体组成,如下图所示:
图中IRQ0—IRQ2是3个中断请求源信号,分别对应实验箱上的三个中断请求
按钮,实验时,按下某个按钮表示发出相应的中断请求信号。这三级中断的
优先次序从低到高为IRQ0到IRQ2。
1.2中断处理在教学机中的具体实现
教学机的中断线路主要包括2片GAL、3个无锁按键、2片74LS374和若干插针。下面分别对这几部分进行简要介绍。
(1)3个无锁按键,提供中断请求的源信号
教学机支持3级中断发,这3个无锁按键作为3个中断源,从右到左依次为一、二、三级中断,对应的中断优先级编码P1、P0依次为01、10、11,优先级也依次升高。这3个无锁按键的引脚作为INTS GAL 和INTP GAL 的输入。
(2)INTS GAL,接受并记忆通过无锁按键给出的中断请求源信号
该芯片的输入信号除了3个无锁按键的6个引脚外,还有控制信号DC23、/GIR及系统时钟CK1。输出信号只有3个分别表示取指时3个无锁按键是否被按下,如果被按下,则相应的输出信号为高电平,否则为低电平。这3个输出信号被送至INTP GAL 。
该芯片实现的功能是,在每次取指前一拍(用DC2-3=1指示),将3个输出信号全部置零;在每次取指时(/GIR信号指示),都检测是否有中断请求(即是否有无锁按键被下),并用这3个输出引脚表示;在取指后以及整个指令执行过程中,这3个输出信号都将保持不变。
(3)INTP GAL,在条件成立时,向CPU 发出中断请求信号/INT(低电平有效)
该芯片实现的功能是:
1)对INTS GAL 送来的3个信号进行中断优先级编码,得到新请求的中断优先级,并与当前中断优先级P1、P0比较;
2)设置中断允许位INTE,该信号高电平表示允许中断,低电平表示禁止中断。当控制信号DC12~DC10=110时,INTE被置为1;DC12~DC10=111
时,INTE被置为0。
3)产生中断请求信号/INT,该信号低电平表示有(更高优先级)中断请求需要响应。
在中断允许位INTE=1时,如果新的中断优先级比当前中断优先级高,则给出中断请求信号/INT=0,否则/INT=1。
P1、P0也是状态寄存器的2个输入信号,可随同状态标志(C、Z、V、S)压入/弹出栈。
P1、P0也是INTVTL74LS374的2个输入信号,用来形成当前中断优先级在中断向量表中的首地址。
4)通过中断向量寄存器INTVTH 74LS374、INTVTL 74LS374硬性设置的中断向量分别为16进制的2104、2108和210C,对应的中断优先级分别是1、2、3。
三.实验内容及步骤
1.实验内容
(1)读懂教材中有关中断的概念,中断响应和中断处理的内容,了解这些功能在教学计算机中是如何实现的;
(2)如果所用的教学计算机的基本指令集合中尚未实现中断隐指令,与处理中断有关的EI,DI和IRET三条指令,则需要首先实现中断隐指令和扩
展这三条指令;如果在基本指令集中已经实现了上述内容,则直接跳过
这一实验步骤。
(3)确定中断向量表地址。这个向量表是以XXX4为首地址的一段内存区(为每一个中断保留4个字的空间),用于存放对应每一个中断源的中
断处理程序的首地址,要在中断隐指令中把这里的选定的一个地址传送
到程序计数器PC中,之后就进入响应中断处理程序的执行过程。常用
的可行方案是在这里保存一条转移指令,实现依据不同的中断源转移到
不同的中断处理程序。教学机设置了3个中断源并为每个中断源分配了
不同的优先级,则3个终端程序入口地址分别为16进制的XXX4,XXX8
和XXXC。
(4)设计对应每一个中断的处理程序,例如显示对应各自中断优先级的一个数字符,重复显示80或160次。
设计一个死循环程序并执行,例如反复先是大写字母M。在这个程序运行过程中,通过按用作为中断请求源的3个不同按钮,则屏幕上会显示不同的字符序列,可以清楚的看到中断嵌套的运行情况。
2、实验步骤
(1)填写中断向量表
TH-union教学机3级中断的中断向量为2104H、2108H、210CH,填写中断表的步骤如下:
A2104
JR 2120
A2108
JR 2130
A210C
JR 2140
(2)编写中断服务程序
A2420
PUSH R0
PUSH R3
MVRD R3,31
JR 2450
A2430
PUSH R0
PUSH R3
MVRD R3,32
JR 2450
A2440
PUSH R0
PUSH R3
MVRD R3,33
JR 2450
A2450
EI
MVRD R0,0042
CALA 2200
MVRD R0,0049
CALA 2200
MVRR R0,R3
CALA 2200
IN 81
SHR R0
SHR R0
JRNC 245C
IN 80
MVRD R0,0045
CALA 2200
MVRD R0,0049
CALA 2200
MVRR R0,R3
CALA 2200
POP R3
POP R0
IRET
A2200
PUSH R0
IN 81
SHR R0
JRNC 2201
POP R0
OUT 80