上海大学计算机组成原理实验13,上海大学计算机组成原理实验报告11.doc

上海大学计算机组成原理实验报告11

上海大学计算机组成原理实验报告11

上海大学_计算机组成原理实验报告8 2011级

上海大学计算机学院 《计算机组成原理二实验》报告8 姓名:学号: 教师:xxx 时间:xxx 地点:xxx机位:xxx

实验名称:程序转移机制(综合实验)

一、实验目的:

1. 2. 3. 4.

学习实现程序转移的硬件机制; 掌握堆栈寄存器的使用;

深入理解PC寄存器自动加1和打入初值功能对计算机程序的深远影响; 掌握代码的分段连续存放技术和实现

二、实验原理:

程序转移:分支和循环总是可以相互替代,所以也常说程序段内的执行流程有顺序和转移两种,而程序段之间的调用也只是把执行流程转移到了另外一个程序段上。所以,任何复杂的程序流程,在硬件实现机制上只有两种情况:顺序执行和转移。硬件实现这两种情况的技术很简单:PC寄存器的自动加1功能实现程序顺序执行,PC寄存器的打入初值功能实现程序转移。

实验箱系统的程序转移硬件机制:当LDCP有效(0)时,PC被打入新值(赋初值),实现程序的转移。这一刻DBUS上的值就是转移的目标地址(被打入PC),这个地址同转移指令所在地址的关系决定了转移类型。

子程序调用和保护断点:子程序的调用和返回是两次转移,特殊点在于:返回时转移的目标一定是调用时转移的出发点。为实现这个特点,在调用转移时必须把出发地址(断点)保存起来。这个“保存”还必须有两个要求:1.不被一般用户所知或改变。2.返回转移时能方便地找到它。第一个要求决定了它不能被保存在数据存储区或程序存储区,第二个要求决定了返回指令的目标地址获得方法与其它转移指令完全不同,返回指令的目标地址一定从这个特殊的“保存区”得到,指令本身不需要再带目标地址,而其他转移指令必须自带目标地址。再考虑到子程序调用的“可嵌套性”,这个“保护区”里的数据应该有“先入后出”特点,这与“货栈”中堆放的货物相似,故称其为“堆栈”。

ST寄存器结构和子程序调用与返回控制信号:实验箱子程序调用和返回的结构由PC电路和ST电路组成。调用转移时,PC的当前值(断点)经下面的245送上DBUS,进入ST保存;然后给PC打入子程序入口地址(调用指令携带的目标地址)完成转子程序。返回转移时,返回指令开启ST的输出,并给出PC打入信号(无条件转移),

于是ST保存的断点经由DBUS打入PC,实现子程序返回。

三、实验内容:

1、用手动方式实现子程序调用转移过程(转子时PC值11H,子程序入口地址50H,且放在A寄存器)。

2、用手动方式实现子程序返回转移过程。

3、编程实现OUT寄存器交替显示11和55,交替频率为可以清晰辨识,且不小于每秒一次(实验箱的工作频率为:114.8Hz。)。

4、修改3的程序,当CY-IN孔送入1时OUT寄存器显示FF并停机。

四、 实验步骤:

一、 用手动方式实现子程序调用转移过程(转子时PC值11H,子程序入口地址50H,

且放在A寄存器): (1) 接线:ELP,STEN,X2,X1,X0,AEN,PCOE (2) 打开电源,调整进入手动模式。

(3) 将AEN置0,在K23~K16打STEP,即将11H写到A中。

(4) 将ELP置0,X2X1X0置为000,STEP,即将11H打入PC单元 。 (5)将STEN置0,X2X1X0置为100,STEP,即将PC中11H打入ST。 (6)循环(3), (4),将50H打入PC。 二、用手动方式实现子程序返回转移过程: 1.将ST设为允许输出,PC设为允许写

三、编程实现OUT寄存器交替显示11和55,交替频率为可以清晰辨识,且不小于每秒一次(实验箱的工作频率为:114.8Hz。):

1.在windows环境运行CP226软件(如双击图标),进入它的主界面 2.在 “源程序” 编辑中,打入如下指令: L1:

MOV A,#11H OUT

CALL 50H MOV A,#55H OUT

CALL 50H JMP L1 ORG 50H MOV A,#05H DELAY: SUB A,#01H JZEXIT JMP DELAY EXIT: RET END

3.在“汇编”中点击“汇编下载”,然后点击“全速运行”,观察现象。 四、修改3的程序,当CY-IN孔送入1时OUT寄存器显示FF并停机: 1.在windows环境运行CP226软件(如双击图标),进入它的主界面 2.在 “源程序” 编辑中,打入如下指令: L3:MOV A,#11H OUT

MOV A,#16H L1:JC L5SUB A,#01H JZ L2 JMP L1 L2:JC L5

MOV A,#55H OUT

MOV A,#16H

L4:SUB A,#01H JZ L3 JMP L4

L5:MOV A, #FFH OUT END

3.在

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

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

相关文章

股票交易日

题目描述: 在股市的交易日中,假设最多可进行两次买卖(即买和卖的次数均小于等于2),规则是必须一笔成交后进行另一笔(即买-卖-买-卖的顺序进行)。给出一天中的股票变化序列,请写一个程序计算一天可以获得的最大收益。请采用实践复杂…

python小老鼠编程_成都python函数学习教程,Python编写课程

1.urllib2/urllib实现urllib2和urllib是Python中的两个内置模块,要实现HTTP功能,实现方式是以urllib2为主,urllib为辅。1.1首先实现一个完整的请求与响应模型urllib2提供一个基础函数urlopen,通过向指定的URL发出请求来获取数据。…

计算机房防火要求,信息机房如何进行防火设计

众所周知,根据机房的使用性质、管理要求及重要数据丢失或网络中断在经济或社会上造成的损失或影响程度,可将电子信息机房分为A、B、C三级。那么,信息机房如何进行防火设计呢?信息机房如何进行防火设计一、选址计算机房建筑规模大、…

js图片前端压缩多图上传(旋转其实已经好了只是手机端有问题要先压缩再旋转)...

var filechooser document.getElementById("choose");// 用于压缩图片的canvasvar canvas document.createElement("canvas");var ctx canvas.getContext(2d);// 瓦片canvasvar tCanvas document.createElement("canvas");var tctx t…

python 案例串接_Python基础系例--字典串操作

字符串字符串是由数字,字母、下划线组成的一串字符创建字符串,可以使用单引号和双引号:var1 Hello World!var2"Hello World!"访问字符串中的值var “Hello World”print(var[0])#运行结果H字符串更新实例:print(var1[0…

计算机串口通信的作用,串口通信的具体用途是什么

串行接口简称串口,也称串行通信接口或串行通讯接口(通常指COM接口),是采用串行通信方式的扩展接口。串行接口 (Serial Interface) 是指数据一位一位地顺序传送,其特点是通信线路简单,只要一对传输线就可以实现双向通信(可以直接利…

网络连接

网络连接状态: C: S: SYN_SEND             SYN_RECVESTABLISH             ESTABLISH FIN_WAIT1             CLOSE_WAITFIN_WAIT2             LAST_ACK TIME_WAIT      …

拯救者r7000怎么关闭触控板_联想拯救者R7000(2020版)上手体验,有没有AMD Yes?

联想作为一个老品牌,它的产品线有很多系列(电脑、手机、平板、智能家居),而我们今天来聊一聊电脑系列中的联想拯救者系列电脑。今年的R7000在五月份发布,而我也在六月份入手了一台,被它的外观吸引。硬件方面的参数:小编…

warframe计算机拒绝访问,Win10运行warframe出现蓝屏DRIVER_CORRUPTED_EXPOOL怎么办

warframe是一款科幻题材的第三人称射击网游,一些用户在windows10系统运行warframe过程中经常出现了电脑蓝屏的现象,并且提示“DRIVER_CORRUPTED_EXPOOL”,这是怎么回事?RIVER CORRUPTED EXPOOL错误是由于Windows 10/8/7上的设备驱…

【SpringMVC学习07】SpringMVC中的统一异常处理

我们知道,系统中异常包括:编译时异常和运行时异常RuntimeException,前者通过捕获异常从而获取异常信息,后者主要通过规范代码开发、测试通过手段减少运行时异常的发生。在开发中,不管是dao层、service层还是controller…

vue取通过key取value_彻底理解Vue中的Watcher、Observer、Dep

思考以下代码new Vue({el: #example,data(){return{obj:{a:1}}}, })当我们写下这行代码时,vue将我们在data内定义的obj对象进行依赖追踪.具体做法为执行new Observer(obj)//经过上面的代码,我们的obj对象会变为以下的样子 {obj:{a:1,__ob__:{ //Observer…

浏览器打开服务器上的图片无法显示,网页中的图片打不开怎么办?原因与解决办法...

最近有网友问小编这样一个很泛的问题:网页中的图片打不开怎么办?对于这个问题,其实导致的原因有很多,但也很好排除原因,主要从网络,网页,平台等当面综合去分析,就很容易可以找到答案…

WCF学习之旅—实现支持REST客户端应用(二十四)

WCF学习之旅—实现REST服务(二十二) WCF学习之旅—实现支持REST服务端应用(二十三) 在上二篇文章中简单介绍了一下RestFul与WCF支持RestFul所提供的方法,及创建一个支持REST的WCF服务端程序,本文介绍如何调…

arduino智能浇花系统_创新成果 | 养花神器——智能浇花机

养花的人应该多少都会遇到这样的问题:需要根据花的习性定时浇水,但给花浇水是个「技术活」,不记得浇水或水浇多了,都会影响花的生长。针对这个问题,可以研究制作一个简单、实用的自动浇花机。根据检测土壤的湿度&#…

服务器新手装备无限拿指令,【新手指南】服务器指令大全

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼【领地指令】/res ? 领地指令帮助页面/res select 选择命令/res create XX 创建名为XX的领地/res remove XX 删除名为XX的领地/res padd 玩家 给某玩家在领地的所有权限(container bucket build use tp)/res pdel 玩家 取消某玩家…

导出怎么用_微信好友账号怎么导出?微信怎么备份通讯录?

微信好友账号怎么导出?微信怎么备份通讯录?对于经常使用微信社交的朋友,都有一个共同的烦恼,那就是微信只能加5000多个好友,平时还怕一个不小心误删了微信好友,不要烦恼,小编教你导出微信好友!情景一:登录…

什么是 css,关于css是什么

层叠样式表是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言,关于css是什么CSS是Cascading Style Sheet的缩写。译作”层叠样式表单“。是用于(增强)控制网页样式并允许将样式信息与网页内容分离的一种标记…

pickle模块的基本使用

pickle是python的biult-in模块; python的pickle模块实现了基本的数据序列和反序列化。通过pickle模块的序列化操作我们能够将程序中运行的对象信息保存到文件中去,永久存储;通过pickle模块的反序列化操作,我们能够从文件中创建上一…

cvpr 深度估计_CVPR再现黑科技!你还在相信“眼见为实”?

全文共2634字,预计学习时长7分钟经常听到有人说,我除了自己的眼睛,什么也不信。自从09年阿凡达(Avatar)电影上映以来,3D渲染、虚拟现实的逼真度总是让人叹为观止。而今,10年过去,最近计算机视觉领域顶级会议…

360浏览器查看服务器响应内容,360浏览器怎么看3个月以前的浏览记录?

360浏览器怎么看3个月以前的浏览记录?有时候我们想查找浏览器的浏览记录,这个比较简单,Ctrlh直接查看,或者如图直接查看。然而有些记录在3个月之前就坑爹了,浏览器是看不到的怎么办呢?比如几天是10月1号&am…