综合实验报告
( 2013 -- 2014年度第 一 学期)
名 称: 计算机组成原理综合实验
题 目: 综合实验
院 系: 计算机系
班 级:
学 号:
学生姓名:
指导教师:
设计周数:
成 绩:
日期: 年 月
一、目的与要求
(1)掌握中断在计算机系统中的作用;
(2)了解可以响应中断请求的条件和时刻,响应中断的过程和实现方案;理解使用中断隐指令的必要性;
(3)了解中断处理的完整过程,开中断、关中断操作的作用,保存现场信息和恢复现场信息必须确保完整完成的含义和可行措施;
(4)掌握确定中断向量、设计中断处理程序的操作步骤和实现方法;
二、实验正文
1.实验内容
(1) 读懂教材中有关中断的概念、中断响应和中断处理的内容,了解这些功能在教学计算机中是如何体现的;
(2) 如果所用的教学计算机的基本指令集合中尚未实现中断隐指令、与处理中断有关的EI、DI和IRET三条指令,则需要首先实现中断隐指令和扩展这三条指令;如果在基本指令集中已经实现了上述内容,则直接跳过这一实验步骤。
(3) 确定中断向量表地址。这个向量表是以XXX4为首地址的一段内存区(为每一个中断保留4个字的空间),用于存放对应每一个中断源的中断处理程序的首地址,要在中断隐指令中把这里的选定的一个地址传送到程序计数器PC中,之后就进入响应中断处理程序的执行过程。常用的可行方案是在这里保存一条转移指令,实现依据不同的中断源转移到不同的中断处理程序。教学机设置了3个中断源并为每个中断源分配了不同的优先级,则3个中断程序入口地址分别为16进制的XXX4、XXX8和XXXC。
(4) 设计对应每一个中断的处理程序,例如显示对应各自中断优先级的一个数字符,重复显示80或160次。
(5) 设计一个死循环程序并执行,例如反复显示大写英文字母M。在这个程序运行过程中,通过按用作为中断请求源的3个不同按钮,则屏幕上会显示不同的字符序列,可以清楚地看到中断嵌套的运行情况。
例如在主程序运行时,屏幕上显示字母M,随时按下哪一个中断源按钮(例如中间位置的一个,对应中断优先级2),会立即进入相应的中断处理过程(屏幕上显示字符2);在执行某一个级别(例如2级)的中断处理的过程中,当按下更低级别(例如1级,右面位置的那个)的中断源按钮时,这个中断请求不会得到响应(屏幕上仍显示字符2,而不是字符1);当按下的是更高级别(例如3级,左面位置的那个)的中断源按钮时,这个中断请求会立即得到响应(屏幕上将变为显示字符3,而不再是字符2);当3级中断处理程序执行结束之后(80或160个字符3显示完成),则会返回到原来尚未完成的2级中断处理过程(屏幕上继续显示字符2);当2级中断处理程序执行结束之后,则返回主程序,屏幕上又开始重复显示字母M。
1.1参考教材,分析中断隐指令、中断向量表、中断向量地址等概念的含义
1)CPU响应中断之后,经过某些操作,转去执行中断服务程序。这些操作是由硬件直接实现的,把它称为中断隐指令。中断隐指令并不是指令系统中的一条真正的指令,它没有操作码,所以中断隐指令是一种不允许、也不可能为用户使用的特殊指令。其所完成的操作主要有: (1)保存断点(2)暂不允许中断(3)引出中断服务程序
2)规定内存储器的最低1 KB用来存放中断向量(共256个),称这一片内存区为中断向量表,地址范围是0~3FFH
3)中断向量地址指的是内存中所储存的中断服务程序的地址,它是二十位的,包括十六位段地址和十六位偏移地址,由此计算住实际的物理地址.一般情况下,他们是从内存的00H按顺序存储,每四个存储单元存一个中断向量地址.
1.2 参考教材,复习多重中断的处理过程
中断隐指令中的操作:关中断、保存断点以及PSW、取服务程序入口地址以及新PSW。中断服务程序执行的操作:保护现场、送新屏蔽字、开中断、服务处理(允许响应更高级别)、关中断、恢复现场以及原屏蔽字、开中断、返回
1.3 分析实验中的中断处理程序各程序段的功能,明确整个嵌套中断的过程。
>U 2450
2450: 6E00 DW 6E00
2451: 8800 0042 MVRD R0, 0042
2453: CE00 2200 CALA 2200
2455: 8800 0049 MVRD R0, 0049
2457: CE00 2200 CALA 2200
2459: 0703 MVRR R0, R3
245A: CE00 2200 CALA 2200
245C: 8281 IN 0081
245D: 0B00 SHR R0
245E: 0B00 SHR R0
245F: 45FC JRNC 245C
2460: 8280 IN 0080
2461: CE00 2200 CALA 2200
2463: 8800 0049 MVRD R0, 0049
2465: CE00 2200 CALA 2200
>A 2420
2420: PUSH R0
2421: PUSH R3
2422: MVRD R3,31
2424: JR 2450
2425:
>A2430
2430: PUSH R0
2431: PUSH R3
2432: MVRD R3,32
2434: JR 2450
2435:
>A 2440
2440: PUSH R0
2441: PUSH R3
2442: MVRD R3,33
2444: JR 2450
2445:
>A2451
2451: MVRD R0,0042
2453: CALA 2200
2455: MVRD R0,0049
2457: CALA 2200
2459: MVRR R0,R33
2459: MVRR R0,R3
245A: CALA 2200
245C:
245C:
>A245C
245C: IN 81
245D: SHR R0
245E: SHR R0
245F: JRNC 245C
2460: IN 80
2461: CALA 2200
2463: MVRD R0,0045
2465: CALA 2200
2467: MVRD R0,0049
2469: CALA 2200
246B: MVRR R0,R3
246C: CALA 2200
246E: POP R3
246F: POP R0
2470:
>E2450
2450 6E00:6E00
>E 246E
246E 8730:EF00 8700:DDDD
>E 2470
2470 0000:EF00
>
>A2200
2200: PUSH R0
2201: IN 81
2202: SHR R0
2203: JRNC 2201
2204: POP R0
2205: OUT 80
2206: RET
>A2001
2001:
>E2000
2000 6E00:6E00
>A2001
2001: MVRD R0,0036
2003: CALA 2200
2005: MVRD R0,4000
2007: DEC R0
2008: JRNC 2007
2009: JR 2001
200A: RET
200B:
>G2000
三、综合实验总结
1.给出本实验中断处理程序的流程图
2.心得体会