欢迎来到天天文库
浏览记录
ID:11893516
大小:44.00 KB
页数:6页
时间:2018-07-14
《计算机组成原理 中断实验 实验五》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、深圳大学实验报告课程名称:计算机组成与设计实验项目名称:中断实验学院:计算机与软件专业:软件工程指导教师:胡庆彬报告人:学号:班级:实验时间:2012-6-7实验报告提交时间:2012-6-21教务部制实验目的:学习和掌握中断产生、响应、处理等技术;实验说明:1.要求中断隐指令中执行关中断功能,如果用户中断服务程序允许被中断,必须在中断服务程序中执行EI开中断命令。2.教学机的中断系统共支持三级中断,由三个无锁按键确定从右到左依次为一、二、三级中断,对应的P1、P0的编码分别是01、10、11
2、,优先级也依次升高。这决定了它们的中断向量(即中断响应后,转去执行的子程序入口地址)为XXX4、XXX8、XXXC;可以看到,每级中断实际可用的空间只有四个字节,故这个空间一般只存放一条转移指令,而真正的用户中断服务程序则存放在转移指令所指向的地址。3.用户需扩展中断隐指令、开中断指令、关中断指令、中断返回指令及其节拍。(已完成)实验要求:1.实验前应了解什么是中断向量,中断处理子程序,主程序,中断处理过程,优先级,中断允许与禁止中断等概念。实验内容:1.扩展开中断指令EI、关中断指令DI、中断
3、返回指令IRET。(已完成)2.确定中断向量表地址。中断向量表的高12位由硬件布线确定为(001001000000)。三级中断对应的中断向量为2404H、2408H、240CH。当有中断请求且被响应后,将执行存放在该中断的中断向量所指向的内存区的指令。2.填写中断向量表。在上述的2404H、2408H、240CH地址写入三条JR转移指令,JR指令的OFFSET是偏移量,其值是要转向的地址的值减去该条转移指令的下一条指令的地址的值得到的,该值的范围在-128~+127之间。但在PCEC16中输入时
4、,用户不需要计算偏移量,直接输入要转向的绝对地址即可。3.编写中断服务程序。中断服务程序可以放在中断向量表之后,中断服务程序可实现在程序正常运行时在计算机屏幕上显示与优先级相对应的不同字符;4.写主程序。可编写一死循环程序,要求先开中断;实验步骤:功能开关设定为00010联机。联机通讯正常1.填写中断向量表。1)将数据开关的高12位设置成:001001000000选择3级中断的中断向量为2404H、2408H、240CH。2)中断向量一共有16位,高12位由硬件布线决定为:00100100000
5、0,后四位为P1P000,P1P0由按下的无锁按键(中断源)决定,分别为01、10、11,所以中断向量的16位为2404、2408、240C。3)填写中断向量表:从2404H单元开始输入下面的程序(2404)JR2420;跳转到中断服务程序(2408)JR2430;跳转到中断服务程序(240C)JR2440;跳转到中断服务程序2.编写中断服务程序。该中断服务程序,先开中断,显示字符“BI”和对应的中断优先级“1”、“2”或”3”后,等待从键盘输入一个字符。在键盘输入一个字符后,显示该字符和字符“
6、EI”,然后退出当前中断服务程序,返回中断断点,继续执行。用A、E命令从2420H单元开始输入下面的程序(标有*的语句表示要用E命令输入)2420:PUSHR0;R0进栈2421:PUSHR3;R3进栈2422:MVRDR3,31;将字符‘1’的ASCII码送寄存器R32424:JR24502430:PUSHR0;R0进栈2431:PUSHR3;R3进栈2432:MVRDR3,32;将字符‘2’的ASCII码送寄存器R32434:JR24502440:PUSHR0;R0进栈2441:PUSHR3
7、;R3进栈2442:MVRDR3,33;将字符‘3’的ASCII码送寄存器R32444:JR2450*2450:EI;开中断(指令编码:6E00)2451:MVRDR0,0042;将字符“B”赋值给R0,B即Begin的缩写。2453:CALA2200;调用子程序,完成显示2455:MVRDR0,0049;将字符“I”赋值给R0,I即Interrupt的缩写2457:CALA2200;调用子程序,完成显示2459:MVRRR0,R3;将R3的内容送R1245A:CALA2200;调用子程序,完成
8、显示245C:IN81;判键盘上是否按了一个键245D:SHRR0;即串口是否有了输入字符245E:SHRR0245F:JRNC245C;若没有,等待2460:IN80;输入字符到R02461:MVRDR0,0045;将字符“E”赋值给R0,E即End的缩写。2463:CALA2200;调用子程序,完成显示2465:MVRDR0,0049;将字符“I”赋值给R0,I即Interrupt的缩写2467:CALA2200;调用子程序,完成显示2469:MVRRR0,R3;将R3的内容送R1246A:
此文档下载收益归作者所有