收藏 分销(赏)

实验7-带移位运算模型机实验指导.doc

上传人:xrp****65 文档编号:6710348 上传时间:2024-12-20 格式:DOC 页数:11 大小:2.97MB 下载积分:10 金币
下载 相关 举报
实验7-带移位运算模型机实验指导.doc_第1页
第1页 / 共11页
实验7-带移位运算模型机实验指导.doc_第2页
第2页 / 共11页


点击查看更多>>
资源描述
计算机组成原理实验指导书 - 76 - 实验七、带移位运算的模型机组成原理实验 一、实验目的: 在实验六的基础上进一步构造一台带移位功能的简单模型机。 二、预习要求: 1 认真预习本实验的相关知识和内容。 三、实验设备: EL-JY-II型计算机组成原理实验系统一套,排线若干。 四、模型机结构: 图7-1 模型机结构框图 图中运算器ALU由U7—U10四片74LS181构成,暂存器1由U3、U4两片74LS273构成,暂存器2由U5、U6两片74LS273构成。微控器部分控存由U13—U15三片2816构成。除此之外,CPU的其它部分都由EP1K10集成(其原理见系统介绍部分)。 存储器部分由两片6116构成16位存储器,地址总线只有低八位有效,因而其存储空间为00H—FFH。 输出设备由底板上的四个LED数码管及其译码、驱动电路构成,当D-G和W/R均为低电平时将数据总线的数据送入数码管显示。在开关方式下,输入设备由16位电平开关及两个三态缓冲芯片74LS244构成,当DIJ-G为低电平时将16位开关状态送上数据总线。在键盘方式或联机方式下,数据可由键盘或上位机输入,然后由监控程序直接送上数据总线,因而外加的数据输入电路可以不用。 注:本系统的数据总线为16位,指令、地址和程序计数器均为8位。当数据总线上的数据打入指令寄存器、地址寄存器和程序计数器时,只有低8位有效。 五、工作原理: 设计三个控制操作微程序: 存储器读操作(MRD):拨动清零开关CLR对地址、指令寄存器清零后,指令译码输入CA1、CA2为“00”时,按“单步”键,可对RAM连续读操作。 存储器写操作(MWE):拨动清零开关CLR对地址、指令寄存器清零后,指令译码输入CA1、CA2为“10”时,按“单步”键,可对RAM连续写操作。 启动程序(RUN):拨动开关CLR对地址、指令寄存器清零后,指令译码输入CA1、CA2为“11”时,按“单步”键,即可转入到第01号“取指”微指令,启动程序运行。 注:CA1、CA2由控制总线的E4、E5给出。键盘操作方式时由监控程序直接对E4、E5赋值,无需接线。开关方式时可将E4、E5接至控制开关CA1、CA2,由开关来控制。 本系统设计的微指令字长共24位,其控制位顺序如下: 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 S3 S2 S1 S0 M Cn WE 1A 1B F1 F2 F3 uA5 uA4 uA3 uA2 uA1 uA0 F1、F2、F3三个字段的编码方案如表7-1: F1字段 F2字段 F3字段 15 14 13 选择 12 11 10 选择 9 8 7 选择 0 0 0 LDRi 0 0 0 RAG 0 0 0 P1 0 0 1 LOAD 0 0 1 ALU-G 0 0 1 AR 0 1 0 LDR2 0 1 0 RCG 0 1 0 P3 0 1 1 自定义 0 1 1 自定义 0 1 1 自定义 1 0 0 LDR1 1 0 0 RBG 1 0 0 P2 1 0 1 LAR 1 0 1 PC-G 1 0 1 LPC 1 1 0 LDIR 1 1 0 299-G 1 1 0 P 4 1 1 1 无操作 1 1 1 无操作 1 1 1 无操作 表7-1 系统涉及到的微程序流程见图7-2(图中各方框内为微指令所执行的操作,方框外的标号为该条微指令所处的八进制微地址)。控制操作为P4测试,它以CA1、CA2作为测试条件,出现了写机器指令、读机器指令和运行机器指令3路分支,占用3个固定微地址单元。当分支微地址单元固定后,剩下的其它地方就可以一条微指令占用控存一个微地址单元随意填写。 机器指令的执行过程如下:首先将指令在外存储器的地址送上地址总线,然后将该地址上的指令传送至指令寄存器,这就是“取指”过程。之后必须对操作码进行P1测试,根据指令的译码将后续微地址中的某几位强制置位,使下一条微指令指向相应的微程序首地址,这就是“译码”过程(其原理见图5-4)。然后才顺序执行该段微程序,这是真正的指令执行过程。 在所有机器指令的执行过程中,“取指”和“译码”是必不可少的,而且微指令执行的操作也是相同的,这些微指令称为公用微指令,对应于图7-2中01、02、31地址的微指令。31地址为“译码”微指令,该微指令的操作为P(1)测试,测试结果出现多路分支。本实验用指令寄存器的前4位(I7-I4)作为测试条件,出现7路分支,占用7个固定微地址单元。 当全部微程序流程图设计完毕后,应将每条微指令代码化,表7-2即为将图7-2的微程序流程按微指令格式转化而成的“二进制微代码表”。 六、实验参考代码: 本实验采用条机器指令,根据上面所说的工作原理,设计参考实验程序如下: 地址(二进制) 机器指令码 助记符 说 明 0000 0000 0000 0000 IN AX, KIN 数据输入电路 AX 0000 0001 0010 0001 MOV Bx, 01H 0001H Bx 0000 0010 0000 0001 0000 0011 0101 0000 ROL Ax Ax循环左移一位 0000 0100 0001 0000 ADD Ax, Bx Ax+Bx Ax 0000 0101 0110 0000 ROR Ax Ax循环右移一位 0000 0110 0011 0000 OUT DISP, Ax Ax 输出显示电路 0000 0111 0100 0000 JMP 00H 00H PC 0000 0110 0000 0000 注:其中MOV、JMP为双字长(32位),其余为单字长指令。对于双字长指令,第一字为操作码,第二字为操作数;对于单字长指令只有操作码,没有操作数。上述所有指令的操作码均为低8位有效,高八位默认为0。而操作数8位和16位均可。KIN和DISP分别为本系统专用输入、输出设备。 图7-2(a) sreg表示移位寄存器 控制开关 00 P(4)测试 MWE(10) MRD(00) RUN(11) PC AR,PC+1 21 PC AR,PC+1 20 23 (D_INPUT) D_BUS LT1 24 RAM D_BUS LT1 22 01 LT1 RAM 30 LT1 LED 27 图7-2(b) 表7-2为根据本实验程序流程图设计的二进制微代码表: 微地址 S3 S2 S1 S0 M CN WE 1A 1B F1 F2 F3 UA5…UA0 000000 0 0 0 0 0 0 0 0 0 111 111 110 010000 000001 0 0 0 0 0 0 0 0 0 101 101 101 000010 000010 0 0 0 0 0 0 0 1 0 110 111 111 011001 000011 0 0 0 0 0 0 0 0 0 010 100 111 000110 000110 1 0 0 1 0 1 0 0 0 000 001 111 000001 000111 0 0 0 0 0 0 0 1 0 000 111 111 000001 001000 0 0 0 0 0 0 0 1 1 000 111 000 000001 001001 0 0 0 0 0 0 0 0 0 100 000 111 000011 001010 0 0 0 0 0 0 0 0 0 101 101 101 000111 001011 0 0 0 0 0 0 1 0 1 111 000 111 000001 001100 0 0 0 0 0 0 0 0 0 101 101 101 011010 001101 0 0 1 1 0 0 0 0 0 000 000 111 011011 001110 0 0 1 1 0 0 0 0 0 000 000 111 011101 010000 0 0 0 0 0 0 0 0 0 101 101 101 010010 010001 0 0 0 0 0 0 0 0 0 101 101 101 010100 010010 0 0 0 0 0 0 0 1 0 100 111 111 010111 010011 0 0 0 0 0 0 0 0 0 111 111 111 000001 010100 0 0 0 0 0 0 0 1 1 100 111 111 011000 010111 0 0 0 0 0 1 1 0 1 111 001 111 010000 011000 1 1 1 1 1 1 1 1 0 111 001 111 010001 011001 0 0 0 0 0 0 0 1 0 110 111 000 001000 011010 0 0 0 0 0 0 0 1 0 001 111 101 000001 011011 0 0 0 1 0 0 0 0 0 111 110 111 011100 011100 0 0 0 0 0 0 0 0 0 000 110 111 000001 011101 0 0 1 0 0 0 0 0 0 111 110 111 011110 011110 0 0 0 0 0 0 0 0 0 000 110 111 000001 表7-2 实验七的二进制微代码表 七、实验步骤: Ⅰ、单片机键盘操作方式实验 在进行单片机键盘操作实验时,必须把K4开关置于“OFF”状态,否则系统处于自锁状态,无法进行实验。 1. 实验连线: 实验连线图如图7-3所示。 连线时应按如下方法:对于横排座,应使排线插头上的箭头面向自己插在横排座上;对于竖排座,应使排线插头上的箭头面向左边插在竖排座上。 2. 写微代码: (1) 将开关K1K2K3K4拨到写状态即K1 off、K2 on、K3 off、K4 off,其中K1、K2、K3在微程序控制电路,K4在24位微代码输入及显示电路上。在监控指示灯滚动显示【CLASS SELECt】状态下按【实验选择】键,显示【ES--_ _ 】输入07或7,按【确认】键,显示为【ES07】,再按下【确认】键。 (2) 监控显示为【CtL1=_】,表示对微代码进行操作。输入1显示【CtL1_1】,表示写微代码,按【确认】。 (3) 监控显示【U-Addr】,此时输入【000000】6位二进制数表示的微地址,然后按【确认】键,监控指示灯显示【U_CodE】,此时输入微代码【007F90】,该微代码是用6位十六进制数来表示前面的24位二进制数,注意输入微代码的顺序,先右后左,按【确认】键则显示【PULSE】,按【单步】完成一条微代码的输入,重新显示【U-Addr】提示输入表7-3第二条微代码地址。 (4) 按照上面的方法输入表7-3微代码,观察微代码与微地址显示灯的对应关系(注意输入微代码的顺序是由右至左)。 微地址(八进制) 微地址(二进制) 微代码(十六进制) 00 000000 007F90 01 000001 005B42 02 000010 016FD9 03 000011 0029C6 06 000110 9403C1 07 000111 010FC1 10 001000 018E01 11 001001 0041C3 12 001010 005B47 13 001011 02F1C1 14 001100 005B5A a 15 001101 3001DB 16 001110 3001DD 20 010000 005B52 21 010001 005B54 22 010010 014FD7 23 010011 007FC1 24 010100 01CFD8 25 010101 06F3C1 26 010110 011F41 27 010111 06F3D0 30 011000 FF73D1 31 011001 016E08 32 011010 011F41 33 011011 107DDC 34 011100 000DC1 35 011101 207DDE 36 011110 000DC1 表7-3 实验七微代码表 3. 读微代码及校验微代码: (1) 先将开关K1K2K3K4拨到读状态即K1 off、K2 off、K3 on、K4 off,按【RESET】按钮对单片机复位,使监控指示灯滚动显示【CLASS SELECt】状态。 (2) 按【实验选择】键,显示【ES--_ _ 】输入07或7,按【确认】键,显示【ES07】。按【确认】键,显示【CtL1=_】时,输入2,按【确认】进入读代码状态。 (3) 监控显示【U_Addr】,此时输入6位二进制微地址,再按【确认】显示【PULSE】,此时按【单步】键,微地址指示灯显示输入的微地址,微代码显示电路上显示该地址对应的微代码,至此完成一条微指令的读过程。 (4) 此时监控显示【U_Addr】,按照上述步骤继续输入微地址,对照表7-2表检查微代码是否有错误,如有错误,可按步骤2重新输入微代码。 4. 写机器指令 (1) 先将K1K2K3K4拨到运行状态即K1 on、K2 off、K3 on、K4 off,按【RESET】按钮对单片机复位,使监控指示灯滚动显示【CLASS SELECt】状态。 (2) 按【实验选择】键,显示【ES--_ _ 】输入07或7,按【确认】键,显示【ES07】,再按【确认】。 (3) 监控显示【CtL1=_】,按【取消】键,监控指示灯显示【CtL2=_】,输入1显示【CtL2_1】表示进入对机器指令写操作状态,此时拨动CLR清零开关对地址寄存器、指令寄存器清零。 (4) 确定清零后,按【确认】显示闪烁的【PULSE】,连续按【单步】键,当微地址显示灯显示“010100”时,按【确认】键,监控指示灯显示【data】,提示输入机器指令“00”或“0000”(两位或四位十六进制数),输入后按【确认】,显示【PULSE】,再按【单步】,微地址显示灯显示“011000”,数据总线显示灯显示“0000000000000000”,即输入的机器指令。此时第一条机器指令完成。 (5) 连续按【单步】,当微地址显示灯再次显示“010100”时,按【确认】输入第二条机器指令。依此规律逐条输入表7-4的机器指令,输完后,可连续按【取消】或【RESET】退出写机器指令状态。注意,每当微地址显示灯显示“010100”时,地址指示灯自动加1显示。如输入指令为8位,则高8位自动变为0。 地址(十六进制) 机器指令(十六进制) 00 0000 01 0021 02 0001 03 0050 04 0010 05 0060 06 0030 07 0040 08 0000 表7-4 实验七机器指令表 5. 读机器指令及校验机器指令: 在监控指示灯显示【CtL2=_】状态下,输入2,显示【CtL2_2】,表示进入读机器指令状态,按步骤4的方法拨动CLR开关对地址寄存器和指令寄存器进行清零,然后按【确认】键,显示【PULSE】,连续按【单步】键,微地址显示灯显示从“000000”开始,然后按“010000”、 “010010” 、“010111”方式循环显示。当微地址灯再次显示为“010000”时,输出显示数码管上显示写入的机器指令。读的过程注意微地址显示灯,地址显示灯和数据总线指示灯的对应关系。如果发现机器指令有误,则需重新输入机器指令。 注意:机器指令存放在RAM里,掉电丢失,故断电后需重新输入。 6. 运行程序 在监控指示灯显示【CtL2=_】状态下,输入3,显示【CtL2_3】,表示进入运行机器指令状态,按步骤4的方法拨动CLR开关对地址寄存器和指令寄存器进行清零,使程序入口地址为00H,可以【单步】运行程序也可以【全速】运行,运行过程中提示输入相应的量,运行结束后从输出显示电路上观察结果。 7. 实验结果说明 注意,进位指示灯Z在运算器电路上,亮表示为“1”,灭表示为“0”。 本实验结果为:输入一数据,循环左移一位,然后执行加“1”运算,接着对结果循环右移一位,可从数据总线观察结果,也可从输出显示电路数码管观察执行结果。 1) 单步运行结果 在监控指示灯显示【run CodE】状态下,连续按【单步】键,可以单步运行程序。当微地址显示灯显示“001 000”时,按【单步】,监控显示灯显示【dAtA】,提示输入数据,输入8000,按【确认】。再连续按【单步】,在微地址灯显示“000 111”时,按【单步】,数据总线显示灯显示“0000000000000001”,即立即数0001H;再连续按【单步】,在微地址灯显示“011 100”时,按【单步】,数据总线显示灯显示“0000000000000001”,即8000H循环左移一位;再连续按【单步】,在微地址灯显示“000 110”时,按【单步】,数据总线显示灯显示“0000000000000010”,即8000H循环左移后加1;再连续按【单步】,在微地址灯显示“011 110”时,按【单步】,数据总线显示灯显示“0000000000000001”,即循环右移后的最终结果。 2) 全速运行结果 在监控指示灯显示【run CodE】状态下,按【全速】键,则开始自动运行程序,在监控指示灯显示【dAtA】时输入数据“8000”,按【确定】键,程序继续运行,此时可由输出显示电路的数码管显示最终运算结果“0001”。 Ⅱ、开关控制操作方式实验 本实验中所有控制开关拨动,相应指示灯亮代表高电平“1”,指示灯灭代表低电平“0”。 连线时应注意:对于横排座,应使排线插头上的箭头面向自己插在横排座上;对于竖排座,应使排线插头上的箭头面向左边插在竖排座上。 1.在图7-3接线图上更改如下接线: 断开控制总线C1——C6和F4——F1上的接线 数据输入电路DIJ1 接 数据总线BD7-----BD0 数据输入电路DIJ2 接 数据总线BD15-----BD8 数据输入电路DIJ-G 接 I/O控制电路Y3 微控器接口UAJ1 接 控制开关电路UA5---UA0 脉冲源及时序电路fin 接 脉冲源及时序电路f/8 脉冲源及时序电路T4—T1 接 控制总线T4---T1 控制开关电路CA1 接 控制总线E4 控制开关电路CA2 接 控制总线E5 2.实验步骤: 1)写微代码 (以写表7-3的微代码为例) : 首先将微程序控制电路上的开关K1K2K3拨到写入状态,即K1 off、K2 on、K3 off,然后将24位微代码输入及显示电路上的开关K4拨到on状态。置控制开关UA5 …… UA0=“000000”,输入微地址“000000”, 置24位微代码开关MS24---MS1为:“00000000 01111111 10010000”,输入24位二进制微代码,即“007F90”,按【单步】,微地址灯显示“000 000”,写入微代码。保持K1K2K3K4状态不变,写入表7-3的所有微代码。 2)读微代码并验证结果: 将微程序控制电路上的开关K1K2K3拨到读出状态,即K1 off、K2 off、K3 on,然后将24位微代码输入及显示电路上的开关K4拨到off状态。置控制开关UA5 …… UA0=“000000”,输入微地址“000000”, 按【单步】,微地址灯显示“000 000”,24位微代码显示“00000000 01111111 10010000”,即第一条微代码。保持K1K2K3K4状态不变,改变UA5 …… UA0微地址的值,读出相应的微代码,并和表7-3的微代码比较,验证是否正确。如发现有误,则需重新输入该微地址相应的微代码。 3)写机器指令 将微程序控制电路上的开关K1K2K3拨到运行状态,即K1 on、K2 off、K3 on,然后将24位微代码输入及显示电路上的开关K4拨到off状态。拨动控制开关电路上的清零开关CLR,对地址寄存器、指令寄存器清零,把控制开关CA1、CA2置为“10”,连续按【单步】按钮,当微地址灯显示 “010100”时,通过数据输入电路的开关输入要写入的机器指令,置D15----D0=“000000000000 0000”,按【单步】,即完成本实验的第一条机器,再连续按【单步】,当微地址显示灯再显示“010000”时,按上面的方法通过数据输入电路的开关输入第二条机器指令指令“0000000000100001”,直至写完表7-4的所有二进制机器指令。注意,每当微地址显示灯显示“010100”时,地址指示灯自动加1显示。 4)读机器指令及校验机器指令: 拨动控制开关电路上的清零开关CLR,对地址寄存器、指令寄存器清零,将CA1、CA2开关置为“00”, 连续按【单步】键,微地址显示灯显示从“000000”开始,然后按“010000”、 “010010” 、“010111”方式循环显示。当微地址灯再次显示为“010000”时,输出显示数码管上显示写入的机器指令。读的过程注意微地址显示灯,地址显示灯和数据总线指示灯的对应关系。如果发现机器指令有误,则需重新输入机器指令。 注意:机器指令存放在RAM里,掉电丢失,故断电后需重新输入。 5)运行程序 将微程序控制电路上的开关K1K2K3拨到运行状态,即K1 on、K2 off、K3 on,然后将24位微代码输入及显示电路上的开关K4拨到off状态。拨动控制开关电路上的清零开关CLR,对地址寄存器、指令寄存器清零。将CA1、CA2开关置为“11”,连续按【单步】,当微地址显示灯显示“001000”时,通过数据输入电路输入二进制数据“100000000000 0000”, 再连续按【单步】。参考键盘控制操作方式实验的结果说明来观察结果是否正确。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 环境建筑 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服