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

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

实验目的


1)学会分析和理解给定的编程问题;

2)掌握中断驱动的基本原理;

3)掌握键盘数据寄存器(KBDR)及键盘状态寄存器(KBSR)工作基本原理;

4)掌握输出数据寄存器(DDR)及输出状态寄存器(DSR)工作基本原理;

5)利用LC-3设计并编写用户程序及中断程序。


实验内容


 计算机领域中,中断就是由软硬件向处理器发送信号,处理器收到并立即处理该信号表示事件的过程。中断会暂停当前处理器正在执行的流程,然后将处理器切换到高优先级。处理器会暂存当前任务的状态,然后执行一小段称为中断处理程序(ISR)的代码来处理该事件。中断是暂时的,中断处理程序执行结束后,处理器会回到之前任务暂存的状态继续执行,中断分为两种类型:硬件中断和软件中断。

 本实验的目的是展示如何让输入输出通过执行中断处理程序的方式来暂停和恢复一个正在运行的程序,恢复后的程序就像中间什么都没有发生过,本实验使用键盘作为输入来中断正在运行的程序。


实验步骤


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


设计思路:

 要实现从键盘输入一个字符后执行中断程序,就需要将中断程序的起始地址写入键盘的中断矢量表中,且要将KBSR的中断使能位设置为1。

 具体实现如下(每一条代码的意义在注释中已经写明,此处不做赘述):


37bb7317c05e4db798cb1d075cc6c824.png

0989522a97924905b4eccc1bcc8afec2.png


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


设计思路:

 要实现中断后的返回,就需要将用户程序中使用的寄存器数据先压入栈中,在执行完中断程序后再将压入栈中的寄存器的值返回。

 从键盘输入一个字符,先判断该字符是否为回车,如果是回车的话,从中断程序返回。若输入的字符不是回车,就执行将该字符输出10遍,再输入一个字符,将其输出10遍,直到输入回车程序返回。

 具体实现如下(每一条代码的意义在注释中已经写明,此处不做赘述):


21d7233ae8634427bff2d9c5d1732b44.png

7e384d372fa04fd4b4f1cf1bdcccf7c0.png


测试程序


未在键盘上输入时


36d967ffe88641c0b88d3496452a0681.png


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


在键盘上输入回车后,在输出10次字符’5’后继续运行用户程序


d6ae79ca9bd94fcf83aeac0f0c5ae9e6.png


实验结论:


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

 也实现了不使用trap服务子程序,自己模拟I/O设备的输入和输出。

相关文章
|
11月前
|
存储 前端开发 Linux
操作系统实验一:时钟中断程序设计
操作系统实验一:时钟中断程序设计
156 0
定时中断实验【嵌入式系统】
定时中断实验【嵌入式系统】
82 0
|
存储
计算机组成原理实验二:双端口存储器原理实验
本篇博文主要是讲述一下计算机组成原理实验中双端口存储器原理实验,因为很多同学在刚学习计算机组成原理实验的时候对于调试的一些步骤还是有些懵懵懂懂,每个步骤之间的连接做的不是很连贯,故有了写此篇博文的初衷,笔者会在近期分享计算机组成原理实验的五个实验,希望对有学习此课程的同学能够有一些帮助!(第一篇博文所写的前缀)
699 3
计算机组成原理实验二:双端口存储器原理实验
计算机组成原理实验五:CPU组成与机器指令执行实验
本篇博文主要是讲述一下计算机组成原理实验中CPU组成与机器指令执行实验,因为很多同学在刚学习计算机组成原理实验的时候对于调试的一些步骤还是有些懵懵懂懂,每个步骤之间的连接做的不是很连贯,故有了写此篇博文的初衷,笔者会在近期分享计算机组成原理实验的五个实验,希望对有学习此课程的同学能够有一些帮助!
606 1
计算机组成原理实验五:CPU组成与机器指令执行实验
|
存储 编译器 异构计算
基于Verilog HDL与虚拟实验平台的计算机组成与CPU实验第十二章:存储器
基于Verilog HDL与虚拟实验平台的计算机组成与CPU实验第十二章:存储器
206 0
基于Verilog HDL与虚拟实验平台的计算机组成与CPU实验第五章:触发器和寄存器
基于Verilog HDL与虚拟实验平台的计算机组成与CPU实验第五章:触发器和寄存器
118 0
|
语音技术
基于Verilog HDL与虚拟实验平台的计算机组成与CPU实验第十一章:数据通路
基于Verilog HDL与虚拟实验平台的计算机组成与CPU实验第十一章:数据通路
250 0
基于Verilog HDL与虚拟实验平台的计算机组成与CPU实验第十五章:认识RISCV
基于Verilog HDL与虚拟实验平台的计算机组成与CPU实验第十五章:认识RISCV
272 0
|
Perl
基于Verilog HDL与虚拟实验平台的计算机组成与CPU实验第四章:七段译码器
基于Verilog HDL与虚拟实验平台的计算机组成与CPU实验第四章:七段译码器
142 0