- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
上海大学计算机组成理原实验报告82011级
上海大学计算机学院
《计算机组成原理二实验》报告8
姓名: 学号: 教师:xxx
时间:xxx 地点:xxx 机位:xxx
实验名称:程序转移机制(综合实验)
一、实验目的:
学习实现程序转移的硬件机制;
掌握堆栈寄存器的使用;
深入理解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中。
PCOE STEN X2 X1 X0 1 1 0 1 1
(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设为允许写
STEN ELP X2 X1 X0 1 1 0 1 0 2.按下小键盘STEP脉冲键,将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
JZ EXIT
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 L5
SUB A,#01H
JZ L2
JMP L1
L2:JC L5
MOV A,#
文档评论(0)