计算机系统(1)实验五 中断实验

实验目的

1)学会分析和理解给定的编程问题;
2)掌握中断驱动的基本原理;
3)掌握键盘数据寄存器(KBDR)及键盘状态寄存器(KBSR)工作基本原理;
4)掌握输出数据寄存器(DDR)及输出状态寄存器(DSR)工作基本原理;
5)利用LC-3设计并编写用户程序及中断程序。

实验内容

  计算机领域中,中断就是由软硬件向处理器发送信号,处理器收到并立即处理该信号表示事件的过程。中断会暂停当前处理器正在执行的流程,然后将处理器切换到高优先级。处理器会暂存当前任务的状态,然后执行一小段称为中断处理程序(ISR)的代码来处理该事件。中断是暂时的,中断处理程序执行结束后,处理器会回到之前任务暂存的状态继续执行,中断分为两种类型:硬件中断和软件中断。
  本实验的目的是展示如何让输入输出通过执行中断处理程序的方式来暂停和恢复一个正在运行的程序,恢复后的程序就像中间什么都没有发生过,本实验使用键盘作为输入来中断正在运行的程序。

实验步骤

实现用户程序(模块A部分):

设计思路:
  要实现从键盘输入一个字符后执行中断程序,就需要将中断程序的起始地址写入键盘的中断矢量表中,且要将KBSR的中断使能位设置为1。
  具体实现如下(每一条代码的意义在注释中已经写明,此处不做赘述):
在这里插入图片描述

在这里插入图片描述

实现键盘中断服务程序(模块B部分):

设计思路:
  要实现中断后的返回,就需要将用户程序中使用的寄存器数据先压入栈中,在执行完中断程序后再将压入栈中的寄存器的值返回。
  从键盘输入一个字符,先判断该字符是否为回车,如果是回车的话,从中断程序返回。若输入的字符不是回车,就执行将该字符输出10遍,再输入一个字符,将其输出10遍,直到输入回车程序返回。
  具体实现如下(每一条代码的意义在注释中已经写明,此处不做赘述):
在这里插入图片描述
在这里插入图片描述

测试程序

  1. 未在键盘上输入时
    在这里插入图片描述

  2. 输入字符’5’后,程序暂停

  3. 在键盘上输入回车后,在输出10次字符’5’后继续运行用户程序
    在这里插入图片描述

实验结论:

  通过本次实验,对LC-3的中断有了更进一步的认识。以前对中断前的准备工作不是很了解,但本次实验通过自己模拟硬件做中断前的准备的工作,也加深了自己对中断前的准备工作的了解(具体包括将寄存器的值压入栈,修改KBSR的中断使能位等)。自己将中断承程序的起始地址写入键盘中断的矢量表,也加强了自己对矢量表的理解,不光提升了对中断服务程序的理解,还加深了对trap服务子程序的了解。
  也实现了不使用trap服务子程序,自己模拟I/O设备的输入和输出。

  • 15
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
中断实验是计算机组成原理实验中的一个重要实验。在中断实验中,我们需要编写一个中断服务程序,并将其与计算机系统中断控制器相连。当系统发生中断事件时,中断控制器会通知CPU,并且CPU会跳转到中断服务程序中去执行特定的操作。 具体来说,中断实验通常包括以下几个步骤: 1. 编写中断服务程序:中断服务程序一般包括中断处理程序和中断返回程序。中断处理程序用于处理中断事件,中断返回程序用于将CPU的控制权返回到原来的程序中去。 2. 配置中断控制器:中断控制器用于管理系统中的中断事件。在实验中,我们需要将中断服务程序与中断控制器相连,并设置中断向量表、中断屏蔽字等参数。 3. 触发中断事件:为了测试中断服务程序是否能够正常工作,我们需要模拟中断事件的发生。可以通过手动输入中断指令、模拟硬件故障等方式来触发中断事件。 4. 执行中断服务程序:当中断事件发生时,中断控制器会通知CPU,并将中断号发送给CPU。CPU会根据中断号跳转到相应的中断服务程序中去执行特定的操作。 5. 返回原程序:当中断服务程序执行完毕后,需要将CPU的控制权返回到原来的程序中去。中断返回程序会执行一些清理工作,并将CPU的状态恢复到中断前的状态。 通过中断实验,我们可以深入了解计算机系统中的中断机制,以及如何编写中断服务程序来处理中断事件。这对于理解操作系统、驱动程序等领域的开发都非常有帮助。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

上山打老虎D

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值