上海大学_计算机组成原理实验报告82011级.pdf

上传人:时光煮雨 文档编号:14694792 上传时间:2022-02-15 格式:PDF 页数:5 大小:65.55KB
返回 下载 相关 举报
上海大学_计算机组成原理实验报告82011级.pdf_第1页
第1页 / 共5页
上海大学_计算机组成原理实验报告82011级.pdf_第2页
第2页 / 共5页
上海大学_计算机组成原理实验报告82011级.pdf_第3页
第3页 / 共5页
亲,该文档总共5页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《上海大学_计算机组成原理实验报告82011级.pdf》由会员分享,可在线阅读,更多相关《上海大学_计算机组成原理实验报告82011级.pdf(5页珍藏版)》请在三一文库上搜索。

1、上海大学计算机学院计算机组成原理二实验报告8姓名:学号:教师: xxx 时间: xxx 地点: xxx 机位: xxx 实验名称:程序转移机制(综合实验)一、实验目的:1.学习实现程序转移的硬件机制;2.掌握堆栈寄存器的使用;3.深入理解 PC寄存器自动加 1 和打入初值功能对计算机程序的深远影响;4.掌握代码的分段连续存放技术和实现二、实验原理:程序转移: 分支和循环总是可以相互替代,所以也常说程序段内的执行流程有顺序和转移两种,而程序段之间的调用也只是把执行流程转移到了另外一个程序段上。所以,任何复杂的程序流程,在硬件实现机制上只有两种情况:顺序执行和转移。硬件实现这两种情况的技术很简单:

2、PC寄存器的自动加1 功能实现程序顺序执行,PC寄存器的打入初值功能实现程序转移。实验箱系统的程序转移硬件机制:当 LDCP 有效(0) 时,PC被打入新值(赋初值),实现程序的转移。 这一刻 DBUS 上的值就是转移的目标地址 (被打入 PC ) ,这个地址同转移指令所在地址的关系决定了转移类型。子程序调用和保护断点:子程序的调用和返回是两次转移,特殊点在于:返回时转移的目标一定是调用时转移的出发点。为实现这个特点,在调用转移时必须把出发地址(断点)保存起来。这个“保存”还必须有两个要求:1. 不被一般用户所知或改变。2. 返回转移时能方便地找到它。第一个要求决定了它不能被保存在数据存储区或

3、程序存储区, 第二个要求决定了返回指令的目标地址获得方法与其它转移指令完全不同,返回指令的目标地址一定从这个特殊的“保存区”得到,指令本身不需要再带目标地址,而其他转移指令必须自带目标地址。再考虑到子程序调用的“可嵌套性”,这个“保护区”里的数据应该有“先入后出”特点,这与“货栈”中堆放的货物相似,故称其为“堆栈”。ST 寄存器结构和子程序调用与返回控制信号:实验箱子程序调用和返回的结构由 PC电路和 ST电路组成。调用转移时, PC的当前值(断点 ) 经下面的 245 送上 DBUS ,进入 ST保存;然后给 PC打入子程序入口地址(调用指令携带的目标地址)完成转子程序。返回转移时,返回指令

4、开启ST的输出,并给出PC打入信号(无条件转移) ,于是 ST保存的断点经由DBUS 打入 PC ,实现子程序返回。I0AI1 ZI2 I3 ZI4I7BC EZCy_INVccJIR3JIR216 ELP151PC打入电路ECLKE程序存PCOEVccCKRSTPCOE-DA0 B0 A7 B7 DIR245DBUS07PC电路LDPCP0 Q0 P7 Q7PE MR CEPCET A0 B0 A7 B7 DIRA0A7储器6116DBUS07161245三、实验内容:1、用手动方式实现子程序调用转移过程(转子时PC值 11H,子程序入口地址 50H ,且放在 A寄存器) 。2、用手动方式实

5、现子程序返回转移过程。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,在 K23K16打入 00010001,STEP ,即将 11H写到 A中。(4) 将

6、ELP置 0,X2X1X0 置为 000,STEP ,即将 11H打入 PC单元 。(5) 将 STEN 置 0,X2X1X0 置为 100,STEP,即将 PC中 11H打入 ST 。(6) 循环(3), (4),将 50H打入 PC 。二、用手动方式实现子程序返回转移过程:1将 ST设为允许输出, PC设为允许写PCOE STEN X2 X1 X0 1 1 0 1 1 STEN ELP X2 X1 X0 1 1 0 1 0 2. 按下小键盘 STEP 脉冲键,将 ST的值送入到 PC寄存器中。三、编程实现 OUT 寄存器交替显示11 和 55,交替频率为可以清晰辨识,且不小于每秒一次 (实

7、验箱的工作频率为: 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环境运行 CP2

8、26软件(如双击图标),进入它的主界面2在 “源程序” 编辑中,打入如下指令:L3:MOV A,#11H OUT MOV A,#16H L1:JC L5 SUB 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. 在“汇编”中点击“汇编下载” ,然后点击“全速运行” ,观察现象4. 用导线接 JIR2 和 JIR3 至开关处,将它们置0 时,观察现象五、实验现象:1. 按下小键盘 STEP 脉冲键,ST寄存器显示 11; 按下 ST

9、EP键,IN 处灯亮,再按下,PC寄存器显示 11。2. 按下小键盘 STEP 脉冲键, PC寄存器显示 50。3. 点击“全速运行”,OUT 寄存器循环显示 11 和 55。4. 点击“全速运行”,OUT 寄存器循环显示11和 55,当 JIR2 和 JIR3 都置 0 时,OUT寄存器显示 FF,不再循环。六、体会通过这次实验,我学习到了实现程序转移的硬件机制,再次实用cp226 集成开发环境,有进一步熟悉了其使用方法。 在做第一、 二个实验时, 由于操作不是非常熟练,于是再多练习熟识其原理后,总算顺利结束。第三个实验其实比较顺利,汇编也得到了改进。七、思考题若要求 11 和 55 各显示 50 次后停机,应该如何修改程序?ORG 00H MOV A,#50 L1: MOV R0,A MOV A,#11H OUT CALL L3 L2: MOV A,#55H OUT CALL L3 MOV A,R0 SUB A,#01 JZ L6 JMP L1 L3: MOV A,#1000H L4: SUB A,#01H JZ L5 JMP L4 L5: RET L6: END

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1