____计算机____学院_____计算机科学与技术_____专业___5__班______组、学号______
姓名__________协作者___________ 教师评定_____________ 实验题目_带移位运算模型机的设计与实现___________ 1. 实验目的与要求:
(1)熟悉由微程序控制器控制模型机的数据通道。 (2)掌握机器指令的使用和编程。
(3)学习设计与调试计算机的基本步骤及方法。
(4)记录程序运行过程的数据和结果,按记录填写答题框,完成练习操作题,观察程序的 执行过程并记录运行结果。
2. 实验方案:
一、实验连线
在实验仪上接好线后,仔细检查无误后可接通电源。
二、实验程序
结合基本模型机所学的五条指令和本实验介绍的移位指令,编写的实验程序已存在磁 盘里,文件名为 EX2,该程序包括机器指令程序和微指令程序,在程序中地址和内容都是 十六进制,机器指令的前 4 位操作码。
三、实验步骤
与PC机联机将上面的实验程序(EX2)下载到实验仪里,该程序包括机器指令程
序和微指令程序,机器指令程序装入 6116 存储器里,微指令程序装入 E2PROM2816 控制存储器里。
(1)实验程序下载操作步骤:
1、 开机后, 启动 Windows 系统, 双击桌面上的 “组成原理实验” 快捷图标, 即可进入 DVCC 组成原理实验系统主画面。
2、单击该系统第三行的打开图标,即可出现文件框,选择文件名 EX2 并打开之。 3、此时左边的编辑窗口“新文件”变为“EX2”,在该窗口里显示 EX2 的源文件,它包括 机器指令程序和微指令程序的微代码,$P 开头是机器指令程序,$M 开头是微指令程序的微 代码。
4、单击“调试”图标,把打开的源文件下载到实验仪里,在下载过程中屏幕下方出现“正 在传送文件”的提示,当文件传送完毕,提示消失。
5、文件传送完毕,要检查源文件是否正确传送到实验仪 RAM 和 ROM 里,首先检查实验 仪 RAM 的内容,单击“程序 RAM”打开该窗口,查看此时显示的地址和内容与实
验程序 中机器指令的地址和内容是否一致, 若不一致, 重复 4 的操作, 若一致, 就单击菜单栏中 “调 试”菜单,然后选择并单击“刷新数据”或按“F5”热键对“程序 RAM”窗口显示的程序 进行刷新。刷新完成后,再查看此时显示的地址和内容与实验程序中机器指令是否一致,若 不一致,则要检查用户接线是否正确或实验仪其他存在的问题。
6、然后再检查实验仪 ROM 的内容,单击“程序 ROM”打开该窗口,查看此时显示的地址 和内容与实验程序中机器指令的地址和内容是否一致,若不一致,重复 4 的操作,若一致, 就单击菜单栏中 “调试”菜单,然后选择并单击“刷新数据” 或按“F5”热键对“程序 ROM” 窗口显示的程序进行刷新。 刷新完成后, 再查看此时显示的地址和内容与实验程序中机器指 令是否一致,若不一致,则要检查用户接线是否正确或实验仪其他存在的问题。
7、经过上面 5、6 操作的检查后,若程序正确,就可以运行程序。
(2) 写微程序:与 PC 联机,将实验微程序装入 TDN-CM++机中 或脱机时手动将本实验微程序写入 TDN-CM++中,手动写入的具 体方法如下:
(A)编程
① 将编程开关置为 PROM(编程)状态。
② 将实验板上 STATEUNIT 中的 STEP 置为“STEP” ,STOP 置为“RUN”状态。 ③ 用二进制模拟开关置微地址μA5--μA0 (如图 22 须将此 6 线排针接开关单元)。 ④ 在 MK24--MK1 开关上置微代码,24 位开关对应 24 位显示灯,开关量为“0”时灯 亮,开关量为“1”时灯灭。
⑤ 启动时序电路(按动启动按纽 START), 即将微代码写入到 E2PROM 2816 的相应地址 对应的单元中。
⑥ 重复③~⑤步骤,将本实验给出的十六进制格式文件转换的二进制代码写入 2816。
(B)校验
①将编程开关设置为 READ(校验)状态。
②将实验板的 STEP 开关置为“STEP”状态,STOP 开关置为“RUN”状态。 ③用二进制开关置好微地址μA5--μA0。
④ 按动 START 键, 启动时序电路, 读出微代码. 观察显示灯 MD24~MD1 的状态 (灯 亮为“0” ,灭为“1”),检查读出的微代码是否与写入的相同。如果不同,则将开 关置于 PROM 编程状态,重新执行(A)即可。
(C) 写程序
使用控制台 KWE 和 KRD 微程序进行机器指令程序的装入和检查。 : ① 使编程开关处于\"RUN” ,STEP 为“STEP”状态,STOP 为“RUN”状态。 ② 拨动总清开关 CLR(0→1), 微地址寄存器清零, 程序计数器清零, 然后控制台 SWB, SWA 开关置为 1” 按动一次启动开关 START, “0 , 微地址显示灯显示 “001001” 再 , 按动一次 START,微地址灯显示“001100” ,此时数据开关的内容置为要写入的机 器指令, 按动两次 START 键后, 即完成该条指令的写入。 若仔细阅读 KWE 的流程, 就不难发现,机器指令的首地址总清后为 00H,以后每个循
环 PC 自动加 1,所以, 每次按动 START,只有在微地址灯显示“001100”时,才设置内容,直到所有机器 指令写完。
③ 写完程序后须进行校验。拨动总清开关 CLR(0→1)后,微地址清零。PC 程序计数器 清零,然后使控制台开关 SWB,SWA 为“0 0” ,按动启动 START,微地址灯将显 示“001000\";再按 START,微地址灯显示为“001010” ;第 3 次按 START,微地址 灯显示为“001110” ;再按 START 后,此时输出单元的数码管显示为该首地址中的 内容。不断按动 START,以后每个循环 PC 会自动加 1,可检查后续单元内容。每 次在微地址灯显示为“001000”时,是将当前地址中的机器指令写入到输出设备中显示。
3. 实验结果和数据处理: 实验结果记录表: 题 号 选项 ① ② 指令 第一条输入指令IN A ③ ④ ⑤ ⑥ ⑦ 20H A A A 加法指令ADD B B A A A A A 带进位循环左移指令RLC B A A A B 第二条输入指令IN 81H 带进位循环右移指令RRC B A B B 循环左移指令RL B A B B B 传送指令STA A B A A 输出指令OUT B A 无条件跳转指令JMP A C 练习操作记录表:(注意:题目不用写入实验报告)
表5.6: 微地址(八进制) 06 S3 S2 S1 S0 M Cn WE A9 A8 1 0 1 1 1 0 0 1 1 A 001 B 101 C 000 UA5~UA0 0000001 表5.7: 微地址(十六进制) 06 内容(六位十六进制表示的微指令代码) 019AB9 表5.8:修改后的机器指令程序: 地址 01 OD 03 表5.9: 输入数据 程序RAM中0D地址的内容 循环右移(RR)的移位结果 逻辑乘结果 内容 10 50 50 助记符 AND R0,(OD) RR RR 说 明 R0内容与存储器0D地址单元内容相与,结果送R0。即(R0)·(OD)->R0。 0D是存放乘数的地址,0D的内容50是乘数,可自定。存数地址单元。 R0存储器的内容循环右移一次,结果送R0。 10 4. 结论
50 08 10 通过带移位模型机和 DVCC 组成原理实验系统软件对多条指令的执行可得各指令的执行的 详细过程和操作结果,而且通过修改实验程序所得的实验结果也符合实际要求, 表明实验步骤正确。
5.问题与讨论及实验总结
(1)每执行一条指令都必须观察实验仪上微程序控制单元中的微地址显示灯(UA0~UA5) 和屏幕下面显示的微地址(Addr)是否与带移位运算模型机流程图一致,分析指令的 执行过程正确。
(2)在 DVCC 组成原理实验系统中修改 RAM 和 ROM 的控制指令和微指令后都必须在实验 系统菜单栏中点击“刷新数据” ,否则无法达到修改目的,实验仪模拟机并没有导入修 改后的新数据。
(3)A8、A9 是 2:4 译码电路的输入端,Y0、Y1、Y2、Y3 是译码器的输出端,其
中 Y0 为 SW-B,Y1 为 CE,Y2 为 LED-B,Y3 为空。
(4) 将十六进制的微代码的第一字节和第三字节内容对换后输入,即从开关 MK24 开始, 2) 3) 先输第三字节,再输第二字节,最后输第一字节,而十六进制的地址要转化为八进制输 入,内容要转化为二进制输入。
实验总结:
通过此综合实验, 我进一步深入地了解计算机系统的内部结构和原理, 熟悉了由微程序控制器控制模拟机的数据通道,掌握有关机器指令如何编写、修改以及使用的问题,学会用 软件执行各种指令和完成指定的操作,同时懂得了如何修改实验程序而得到所要运行的程 序,除此之外,还学习了设计与调试计算机的基本步骤及方法,操作时得到的实验值和对微 指令推断得到的理论值是一致的。 说明在实验中没有误操作出现。 通过对实验仪的操作与观 察,熟悉了微程序控制器对模型机数据通道的控制,也掌握了 4 条移位指令的使用。从中体 会到计算机模型机的强大功能,这对以后的学习有所帮助。
5. 思考题:
(1)答:因为机器指令放在内存中,而 AR 标出的是一个字节的储存单元,要取出两
个字节就必须进行两次取址,取址后要使 PC 加 1 才能执行下一条微指令,所以双字节机器指 令都有 PC AR,PC+1 这一条取址微指令。
(2) 表5.10: 地址 内容 00 00 07 10 01 10 05 50 07 20 09 0B 30 40 说 明 10H->R0。 RO寄存器内容送存储器OE地址单元。 (R0)+(R0)->R0。 R0内容循环右移一次。 R0寄存器内容送存储器OF地址单元的内容。 OUT BUS,(OF) 无条件转移到地址为00开始的指令。 JMP 00 循环右移的结果 存储器0F地址的内容 总线上输出的数据 助记符 In R0,10H STA(OE),R0 ADD R0,RO RR STA(OF),R0 表5.11: 输入数据 存储器0E地址的内容 相加结果 10
30 40 20 30 30
因篇幅问题不能全部显示,请点此查看更多更全内容