计算机组成原理 中断原理实验

news2024/9/25 1:15:21

一、实验目的

(1)从硬件,软件结合的角度,模拟单级中断和中断返回的过程

(2)通过简单的中断系统,掌握中断控制器、中断向量、中断屏蔽等概念

(3)了解微程序控制器与中断控制器协调工作的基本原理

二、实验任务

(1)了解中断系统中每个信号的意义和变化条件,并将下面的主程序和中断服务程序手工汇编成十六进制机器代码

地址

指令

机器代码

20H

INTS

0B0H   10110000

21H

LDA R0,[R2]

58H   01011000

22H

ADD R0,R0

00H   00000000

23H

ADD R0,R0

00H   00000000

24H

ADD R0,R0

00H   00000000

25H

ADD R0,R0

00H   00000000

26H

ADD R0,R0

00H   00000000

27H

ADD R0,R0

00H   00000000

28H

ADD R0,R0

00H   00000000

29H

JMP [R1]

84H   10000100

中断服务程序:

地址

指令

机器代码

0A0H

AND R0,R0

30H   00110000

0A1H

IRET

0A0H   10100000

三、实验工具

模拟程序

四、实验步骤及实验结果

(2)连线

(3)存程序机器代码,设置通用寄存器R1、R2及内存相关单元的数据

设置寄存器R1、R2的值

根据要求,设置R1 = 21H, R2 的值为10H。

1.令DP=0,DB=0,DZ=0,使实验系统处于连续运行状态。令SWB=1,SWA=1,使实验系统处于寄存器加载工作方式KLD。按CLR#按钮,使实验系统处于初始状态。

2.在SW7-SW0上设置一个存储器地址,该存储器地址供设置通用寄存器使用。该存储器地址最好是不常用的一个地址,以免设置通用寄存器操作破坏重要的存储器单元的内容可将该地址设置为0FFH。按一次QD按钮,将0FFH写入AR1和AR2。

3.在SW7-SW0上设置01H,作为通用寄存器R1的寄存器号。按一次QD按钮,将01H写入IR。

4.在SW7-SW0 设置21H,按一次QD按钮,将21H写入IR指定的R1寄存器。

5.在SW7-SW0. 上设置02H, 作为通用寄存器R2的寄存器号。按一次QD按钮,将02H写入IR。

6.在SW7-SW0设置10H,作为R2的值。按一次QD按钮,将10H写入IR指定的R2寄存器。

7. 设置R1、R2结束,按CLR#按钮,使实验系统恢复到初始状态。

存程序机器代码。

本操作中,在10H单元存入01H,从20地址开始存10个机器代码: 0B0H,58H,00H, 00H, 00H, 00H, 00H, 00H, 00H, 84H。 从0A0H存入2个机器代码: 30H, 0A0H。

1.令DP=0,DB=0,DZ=0,使实验系统处于连续运行状态。令SWB=1,SWA=0,使实验系统处于写双端口存储器工作方式KWRD。按CLR#按钮,使实验系统处于初始状态。

2.置SW7-SW0为10H,按QD按钮,将10H写入AR1。

3. 置SW7-SW0 为01H,按QD按钮,将01H写入存储器10H单元。

4.按CLR#按钮,使实验系统恢复初始状态。

5.置SW7-SW0为20H,按QD按钮,将20H写入AR1。

6. 置SW7-SW0为0B0H, 按QD按钮,将0B0H写入存储器20H单元。AR1自动加1,变为21H。

7.置SW7-SW0为58H,按QD按钮,将58H写入存储器21H单元。AR1自动加1,变为22H。

8.重复进行下去,一直到将84H写入存储器29H单元。

按CLR#按钮,使实验系统恢复到初始状态。

9.置SW7-SW0为0A0H,按QD按钮,将0A0H写入AR1。

10. 置SW7-SW0 为30H, 按QD按钮,将30H写入存储器0A0H单元。

11.置SW7-SW0为 0A0H, 按QD按钮,将0AOH写入存储器0A1H单元。

12.按CLR#按钮,使实验系统恢复到初始状态。

(4)从地址20H执行程序,在程序运行中,按一次控制台的INTR。 进入中断后,用单拍(DP)方式执行,直到返回主程序为止。列表记录中断系统中有关信号的变化情况,特别要纪录好断点地址和R0的值。

1.令DP=0,DZ=0,DB=0,SWA=0,SWB=0,SWC=0,使实验系统处于连续运行状态。

2.置SW7-SW0为20H,作为程序的起始地址。按QD按钮,启动程序从20H地址运行。

3.按INTR按钮,发出一个INTR中断脉冲,请求中断。中断后硬件自动将中断地址存入中断地址寄存器IAR。微程序地址应为25H。

4. 置SW7-SW0为0A0H, 这是中断程序的入口地址。将DP由置0改为置1。按一次QD按钮,将0A0H送入程序计数器PC。微程序地址应为26H。

5. 按一次QD按钮,进行取指微操作。微程序地址应为05H。

6. 按一次QD按钮,进行置数微操作。微程序地址应为13H。

7. 按一次QD按钮,进行RO & RO操作,这时微程序地址应为38H。 观察DBUS总线的值,即为R0的值。

8. 按一次QD按钮,进行写回微操作。微程序地址应为34H。

9. 按一次QD按钮,进行判定有无中断请求INTQ微操作。微程序地址应为0FH。

10.按一次QD按钮,进行取指微操作。微程序地址应为05H。

11.按一次QD按钮,进行从中断程序返回主程序微操作。微程序地址应为1AH。 这时观察DBUS的值,即中断地址。

12.按一次QD按钮,进行判有无新的中断操作。微程序地址为0FH。

13. 按一次QD按钮,进行取指微操作。微程序地址为05H。 此刻,程序已返回主程序。

(5)操作方式同(4), 三次纪录到的中断地址和R0值一般不会相同。由于按下INTR按钮的时间对主程序而言,是随机的,具有不确定性,因此各次中断地址、R0会具有不同的值。

(6)将RAM中20H单元的内容由指令INTS改为INTC, 重作(4), 记录发生的现象。由于INTC是关中断指令,因此将不会发生中断。

把20H地址存放的值改为C0H,就关闭了中断指令,就无法按INTR停止运行。

五、个人总结

做这次实验才发现,原来在执行下一步前能够保存数据,以防实验错误导致内存数据出现错误,从而影响下一步操作。这个保存的方式是以txt形式保存,里面储存格式为二进制的地址:该地址二进制的存储数据。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1545011.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

批量文本管理:一键合并与智能分隔,让文档处理更高效!

在信息爆炸的时代,我们每天都面临着海量的文本信息,从工作文件到个人笔记,从学术论文到社交媒体帖子,管理这些文本内容成为一项巨大的挑战。如何高效地合并、整理这些散乱的文本,使其有序且易于检索?今天&a…

后端常问面经之Java集合

HashMap底层原理 HashMap的数据结构: 底层使用hash表数据结构,即数组和链表或红黑树 当我们往HashMap中put元素时,利用key的hashCode重新hash计算出当前对象的元素在数组中的下标 存储时,如果出现hash值相同的key,此…

⨯ EPERM: operation not permitted, link ...

新增区块链相关包后,项目在部署的时候报错,报错内容如下: 报错信息: ⨯ EPERM: operation not permitted, link /Users/XXX/.cache/act/be662ca67b3f7553/hostexecutor/node_modules/bigint-buffer/build/node_gyp_bins/python…

【数据结构刷题专题】—— 二叉树

二叉树 二叉树刷题框架 二叉树的定义: struct TreeNode {int val;TreeNode* left;TreeNode* right;TreeNode(int x) : val(x), left(NULL), right(NULL); };1 二叉树的遍历方式 【1】前序遍历 class Solution { public:void traversal(TreeNode* node, vector&…

「Nginx」Nginx配置详解

「Nginx」Nginx配置详解 参考文章1、正向代理和方向代理2、指定域名允许跨域 参考文章 1、Nginx反向代理 2、nginx配置详解 3、Nginx服务器之负载均衡策略(6种) 1、正向代理和方向代理 2、指定域名允许跨域 map $http_origin $allow_cors {default 1;…

4D 毫米波雷达前景

目录 传统雷达检测流程 行业首先 存在问题 解决方案 雷达数据集 1)3D检测 2) 场景估计 4D毫米波雷达的未来发展趋势 4D毫米波雷达是指一种高级的雷达系统,它能够提供三维空间信息(即长度、宽度、高度)和第四维…

数据清洗(一)Excel

一、引言 线上出现问题之后的数据清洗是少不了的,有的可以直接通过接口或者mq补偿,有的写sql更新db就可以,但是在匹配关系比较复杂的时候就需要建立临时表做关联匹配,数据量不大可以直接用excel进行匹配。 二、Excel清洗数据 作者…

如何在VS Code上搭建 C/C++开发环境

顾得泉:个人主页 个人专栏:《Linux操作系统》 《C从入门到精通》 《LeedCode刷题》 键盘敲烂,年薪百万! 一、什么是VScode VScode(Visual Studio Code)是一款由微软开发的免费开源的轻量级代码编辑器。它…

【Android】美团组件化路由框架WMRouter源码解析

前言 Android无论App开发还是SDK开发,都绕不开组件化,组件化要解决的最大的问题就是组件之间的通信,即路由框架。国内使用最多的两个路由框架一个是阿里的ARouter,另一个是美团的WMRouter。这两个路由框架功能都很强大&#xff0…

JavaScript 中内存泄漏的几种情况(非常详细)

文章目录 一、是什么二、垃圾回收机制标记清除引用计数小结 三、常见内存泄露情况参考文献 一、是什么 内存泄漏(Memory leak)是在计算机科学中,由于疏忽或错误造成程序未能释放已经不再使用的内存 并非指内存在物理上的消失,而…

如何使用 ArcGIS Pro 制作三维建筑

三维地图已经逐渐成为未来地图的趋势,对于大范围应用,只需要普通的建筑体块就行,如果有高程数据,还可以结合地形进行显示,这里为大家介绍一下 ArcGIS Pro 制作三维建筑的方法,希望能对你有所帮助。 数据来…

容器镜像加速指南:探索 Kubernetes 缓存最佳实践

介绍 将容器化应用程序部署到 Kubernetes 集群时,由于从 registry 中提取必要的容器镜像需要时间,因此可能会出现延迟。在应用程序需要横向扩展或处理高速实时数据的情况下,这种延迟尤其容易造成问题。幸运的是,有几种工具和策略…

文件操作示例

1.C文件操作 1.1文件的使用方式 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<string.h> #include<stdlib.h> #include<errno.h>int main() {FILE* pf fopen("test.txt", "w");if (pf NULL){printf("%s\…

2015年认证杯SPSSPRO杯数学建模C题(第二阶段)荒漠区动植物关系的研究全过程文档及程序

2015年认证杯SPSSPRO杯数学建模 C题 荒漠区动植物关系的研究 原题再现&#xff1a; 环境与发展是当今世界所普遍关注的重大问题, 随着全球与区域经济的迅猛发展, 人类也正以前所未有的规模和强度影响着环境、改变着环境, 使全球的生命支持系统受到了严重创伤, 出现了全球变暖…

代码随想录算法训练营第二十一天(二叉树VII)| 530. 二叉搜索树的最小绝对差、501. 二叉搜索树中的众数、236. 二叉树的最近公共祖先(JAVA)

文章目录 530. 二叉搜索树的最小绝对差解题思路源码 501. 二叉搜索树中的众数解题思路源码 236. 二叉树的最近公共祖先解题思路源码 530. 二叉搜索树的最小绝对差 给你一个二叉搜索树的根节点 root &#xff0c;返回 树中任意两不同节点值之间的最小差值 。 差值是一个正数&a…

High 级别反射型 XSS 攻击演示(附链接)

环境准备 如何搭建 DVWA 靶场保姆级教程&#xff08;附链接&#xff09;https://eclecticism.blog.csdn.net/article/details/135834194?spm1001.2014.3001.5502 测试 打开靶场找到该漏洞页面 先右键检查输入框属性 还是和之前一样的&#xff0c;所以直接输入 HTML 标签提交…

【Java八股面试系列】中间件-Redis

目录 Redis 什么是Redis Redis解决了什么问题 Redis的实现原理 数据结构 String 常用命令 应用场景 List(列表) 常用命令 应用场景 Hash(哈希) 常用命令 应用场景 set(集合) 常见命令​编辑 应用场景 Sorted Set(有序集合) 常见命令​编辑 应用场景 数据持…

GitHub加速访问最简单的方法

Github是全球最大的代码开源平台&#xff0c;对于编程的小伙伴来说&#xff0c;这是一个巨大的宝库&#xff0c;也是编程学习的圣地。很对小伙伴在使用GitHub时会经常出现无法访问Github的情况。 一、解决方法——>修改hosts文件 通过 IP查询工具来获取当前Github网站的真实…

计算机网络:现代通信的基石

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

AcWing 4609:火柴棍数字 ← 贪心算法

【题目来源】 https://www.acwing.com/problem/content/4612/【题目描述】 给定 n 个火柴棍&#xff0c;你可以用它们摆出数字 0∼9。 摆出每个数字所需要的具体火柴棍数量如下图所示&#xff1a; 请你用这些火柴棍摆成若干个数字&#xff0c;并把这些数字排成一排组成一个整数…