计算机组成原理实验七:中断实验
一、实验目的
- 加深理解计算机系统中断的工作原理及处理过程。
- 学习和掌握中断产生、响应、处理等技术。
- 掌握中断服务子程序的编写要点,进行一次硬、软件的综合调试。
二、实验设备与器材
TEC-XP+教学实验系统和仿真终端软件PCEC。
三、实验说明和原理
- 要求中断隐指令中执行关中断功能,如果用户中断服务程序允许被中断,必须 在中断程序中执行EI开中断命令。
- 教学机的中断系统共支持三级中断,由三个无锁按键确定 从右到左依次为一、二、三级中断,对应的P1、P0的编码分别是01、10、11,优先级也依次升高,这决定 了它们的中断向量,为XXX4、XXX8、XXXC。可以看到,每级中断实际可用空间只有四个字节,故这个空间一般只存放一条转移指令,而真正的用户中断服务程序则存放在转移指令所指向的地址。
- 用户需扩展中断隐指令、开中断指令、产中断指令、中断返回指令及其节拍。
四、实验内容
- 扩展中断隐指令,为中断隐指令分配节拍,中断隐指令用到12个节拍,为了和一般指令相区别,应将其节拍T3设计为1.
- 扩展开中断指令EI、关中断指令DI、中断返回指令IRET。
- 确定中断向量地址。中断微量的高12位由开关确定为(0001001000000)。三级中断对应的中断微量为2404H、2408H、240CH。当有中断请求且被响应后,将执行存放在该中断的中断微量所指向的内存区的指令。
- 真写中断微量表。在上述2404H、2408H、240CH地址写入三条JR转移指令,JR指令的OFFSSET是-128~127之间,但在PCEC16中输入时,用户不需要计算偏移量,直接输入要转向的绝对地址即可。
- 编写中断服务程序。中断服务程序可以放在中断微量表之后,中断服务程序可以实现在程序正常运行时在计算机屏幕上显示与优先级相对应的不同字符。
- 写主程序。可编写一死循环,要求先开中断。
五、实验步骤与中断程序
截图结果如下:
六、实验心得
通过此次试验,我加深理解计算机系统中断的工作原理及处理过程,学习和掌握了中断产生、响应、处理等技术,掌握中断服务子程序的编写要点,进行一次硬、软件的综合调试。
由于本次实验课前,计算机组成原理课堂上进行了关于中断机制,中断向量表的学习,因此在本次实验课上得心应手。
本次除了敲上课本所附代码外,自行设计了一个中断程序,虽然过程中遇到些许麻烦,不过最终得以解决,过程中,对中断的产生,响应以及处理机制加深了了解和熟悉。
在学习中断时,应学会主动制造错误,如除法溢出等出发中断,然后逐步了解其响应过程,以及通过中断向量表调用内存中自己所写入的程序代码,从而加深对中断整个过程的了解。
从单片机中的学习,清楚明白到中断机制的存在为底层编程予以极大方便和灵活性,因此熟悉中断机制是我们深入学习嵌入式系统的前提。