计算机组成原理中断实验程序,计算机组成原理中断实验实验五

41528d3028836879cd698677c3999917.gif计算机组成原理中断实验实验五

深 圳 大 学 实 验 报 告 课程名称: 计算机组成与设计 实验项目名称: 中断实验 学院: 计算机与软件 专业: 软件工程 指导教师: 胡庆彬 报告人: 学号: 班级: 实验时间: 2012-6-7 实验报告提交时间: 2012-6-21 教务部制 实验目的: 学习和掌握中断产生、响应、处理等技术; 实验说明: 1.要求中断隐指令中执行关中断功能,如果用户中断服务程序允许被中断,必须在中断服务程序中执行 EI 开中断命令。 2.教学机的中断系统共支持三级中断,由三个无锁按键确定从右到左依次为一、二、三级中断,对应的 P1、P0 的编码分别是 01、10、11,优先级也依次升高。这决定了它们的中断向量(即中断响应后,转去执行的子程序入口地址)为 XXX4、XXX8、XXXC;可以看到,每级中断实际可用的空间只有四个字节,故这个空间一般只存放一条转移指令,而真正的用户中 断服务程序则存放在转移指令所指向的地址。 3.用户需扩展中断隐指令、开中断指令、关中断指令、中断返回指令及其节拍。(已完成) 实验要求: 1. 实验前应了解什么是中断向量,中断处理子程序,主程序,中断处理过程,优先级,中断允许与禁止中断等概念。 实验内容: 1. 扩展开中断指令 EI、关中断指令 DI、中断返回指令 IRET。(已完成) 2 .确定中断向量表地址。中断向量表的高 12 位由硬件布线确定为(0010 0100 0000)。三级中断对应的中断向量为 2404H、2408H、240CH。当有中断请求且被响应后,将执行存放在该中断的中断向量所指向的内存区的指令。 2. 填写中断向量表。在上述的 2404H、2408H、240CH 地址写入三条 JR 转移指令,JR 指令的OFFSET 是偏移量,其值是要转向的地址的值减去该条转移指令的下一条指令的地址的值得到的,该值的范围在-128~+127 之间。但在 PCEC16 中输入时,用户不需要计算偏移量,直接输入要转向的绝对地址即可。 3. 编写中断服务程序。中断服务程序可以放在中断向量表之后,中断服务程序可实现在程序正常运行时在计算机屏幕上显示与优先级相对应的不同字符; 4. 写主程序。可编写一死循环程序,要求先开中断; 实验步骤 : 功能开关设定为 00010 联机 。 联机通讯正常 1. 填写中断向量表。 1)将数据开关的高 12 位设置成:0010 0100 0000 选择 3 级中断的中断向量为 2404H、2408H、240CH。 2)中断向量一共有 16 位,高 12 位由硬件布线决定为:0010 0100 0000,后四位为 P1P000,P1P0 由按下的无锁按键(中断源)决定,分别为 01、10、11,所以中断向量的 16 位为2404、2408、240C。 3)填写中断向量表: 从 2404H 单元开始输入下面的程序 (2404)JR 2420 ;跳转到中断服务程序 (2408)JR 2430 ;跳转到中断服务程序 (240C)JR 2440 ;跳转到中断服务程序 2. 编写中断服务程序。 该中断服务程序,先开中断,显示字符“BI”和对应的中断优先级“1”、“2”或”3” 后,等待从键盘输入一个字符。在键盘输入一个字符后,显示该字符和字符“EI”,然后退出当前中断服务程序,返回中断断点,继续执行。 用 A、E 命令从 2420H 单元开始输入下面的程序(标有*的语句表示要用 E 命令输入)2420:PUSH R0 ;R0 进栈 2421:PUSH R3 ;R3 进栈 2422:MVRD R3,31 ;将字符‘1’的 ASCII 码送寄存器 R3 2424:JR 2450 2430:PUSH R0 ;R0 进栈 2431:PUSH R3 ;R3 进栈 2432:MVRD R3,32 ;将字符‘2’的 ASCII 码送寄存器 R3 2434:JR 2450 2440:PUSH R0 ;R0 进栈 2441:PUSH R3 ;R3 进栈 2442:MVRD R3,33 ;将字符‘3’的 ASCII 码送寄存器 R3 2444:JR 2450 *2450:EI ;开中断(指令编码:6E00) 2451:MVRD R0,0042 ;将字符“B”赋值给 R0,B 即 Begin 的缩写。 2453:CALA 2200 ;调用子程序,完成显示 2455:MVRD R0,0049 ;将字符“I”赋值给 R0,I 即 Interrupt 的缩写2457:CALA 2200 ;调用子程序,完成显示 2459:MVRR R0,R3 ;将 R3 的内容送 R1 245A:CALA 2200 ;调用子程序,完成显示 245C:IN 81 ;判键盘上是否按了一个键 245D:SHR R0 ;即串口是否有了输入字符 245E:SHR R0 245F:JRNC 245C ;若没有,等待 2460:IN 80 ;输入字符到 R0 2461:MVRD R0,0045 ;将字符“E”赋值给 R0,E 即 End 的缩写。 2463:CALA 2200 ;调用子程序,完成显示 2465:MVRD R0,0049 ;将字符“I”赋值给 R0,I 即 Interrupt 的缩 写 2467:CALA 2200 ;调用子程序,完成显示 2469:MVRR R0,R3

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值