EL-JY- 计算机组成原理第二套 实验八

更新时间:2023-03-14 02:48:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

计算机组成原理实验指导书 - 77 -

实验八、复杂模型机组成原理实验

一、实验目的:

在实验七的基础上,构造一个指令系统,实现比较完整的模型机功能。 二、预习要求:

认真预习本实验的相关知识和内容。 三、实验设备:

EL-JY-II型计算机组成原理实验系统一套,排线若干。 四、模型机结构:

8-1 模型机结构框图

计算机组成原理实验指导书 - 78 -

图中运算器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位有效。 五 工作原理: 1、 数据格式:

本实验计算机采用定点补码表示法表示数据,字长为16位,其格式如下:

15 符号 14 13…….. 0 尾 数 其中第16位为符号位,数值表示范围是:-32768≤X<32767。

2、 指令格式: 1)算术逻辑指令

设计9条单字长算术逻辑指令,寻址方式采用寄存器直接寻址。其格式如下:

7 6 5 4 OP-CODE 3 2 rs 1 0 rd 其中OP-CODE为操作码,rs为源寄存器,rd为目的寄存器,并规定: OP-CODE 指令 0111 CLR 1000 MOV 1001 ADD 1010 SUB 1011 INC 1100 AND 1101 NOT 1110 ROR 1111 ROL Rs或rd 00 01 10 选定寄存器 Ax Bx Cx

计算机组成原理实验指导书 - 79 -

9条算术逻辑指令的名称、功能和具体格式见表8-2。 2)存储器访问及转移指令

存储器的访问有两种,即存数和取数。它们都使用助记符MOV,但其操作码不同。转移指令只有一种,即无条件转移(JMP)。指令格式如下:

7 6 00 5 4 M 3 2 OP-CODE D 其中OP-CODE为操作码,rd为寄存器。M为寻址模式,D随M的不同其定义也不相同,如下表所示:

OP-CODE 指令说明

寻址模式M 00 10 11 有效地址E E=(PC)+1 E=D E=100H +D D定义 立即数 直接地址 直接地址 说 明 立即寻址 直接寻址 扩展直接寻址 00 写存储器 01 读存储器 10 转移指令 1 0 rd 注:扩展直接寻址用于面包板上扩展的存储器的寻址。

3)I/O指令

输入(IN)和输出(OUT)指令采用单字节指令,其格式如下:

7 6 5 4 OP-CODE 3 2 addr 1 0 rd 其中,当OP-CODE=0100且addr=10时,从“数据输入电路”中的开关组输入数据;当OP-CODE=0100且addr=01时,将数据送到“输出显示电路”中的数码管显示。 3、 指令系统

本实验共有14条基本指令,其中算术逻辑指令8条,访问内存指令和程序控制指令4条。输入输出指令2条。表8-1列出了各条指令的格式、汇编符号和指令功能。

汇编符号 指令的格式 功 能 MOV rd,rs ADD rd,rs SUB rd,rs 1000 rs rd 1001 rs rd 1010 rs rd

rs rd rs+rd rd rd-rs rd 计算机组成原理实验指导书 - 80 -

INC rd AND rd,rs NOT rd ROR rd ROL rd 1011 rd rd 1100 rs rd 1101 rd rd 1110 rd rd 1111 rd rd rd+1 rd rs∧rd rd rd rd rd rd MOV [D],rd 00 10 00 rd rd [D] D MOV rd, [D] 00 10 01 rd [D] rd D MOV rd, D 00 00 01 rd D rd D JMP D 00 00 10 00 D PC D IN rd, KIN OUT DISP,rd 0100 10 rd KIN rd 0100 01 rd rd DISP 表8-1 实验八指令格式 4.设计微代码

设计三个控制操作微程序:

存储器读操作(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位,其控制位顺序如下:

计算机组成原理实验指导书 - 81 -

24 S3 23 S2 22 S1 21 S0 20 M 19 Cn 18 WE 17 1A 16 1B 15 14 13 F1 12 11 10 F2 9 8 7 F3 6 uA5 5 uA4 4 uA3 3 uA2 2 uA1 1 uA0

F1、F2、F3三个字段的编码方案如表8-2:

F1字段 15 14 13 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 选择 LDRi LOAD LDR2 自定义 LDR1 LAR LDIR 无操作 F2字段 12 11 10 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 选择 RAG ALU-G RCG 自定义 RBG PC-G 299-G 无操作 F3字段 9 8 7 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 选择 P1 AR P3 自定义 P2 LPC P 4 无操作 表8-2

系统涉及到的微程序流程见图8-2(图中各方框内为微指令所执行的操作,方框外的标号为该条微指令所处的八进制微地址)。控制操作为P4测试,它以CA1、CA2作为测试条件,出现了写机器指令、读机器指令和运行机器指令3路分支,占用3个固定微地址单元。当分支微地址单元固定后,剩下的其它地方就可以一条微指令占用控存一个微地址单元随意填写。

机器指令的执行过程如下:首先将指令在外存储器的地址送上地址总线,然后将该地址上的指令传送至指令寄存器,这就是“取指”过程。之后必须对操作码进行P1测试,根据指令的译码将后续微地址中的某几位强制置位,使下一条微指令指向相应的微程序首地址,这就是“译码”过程(其原理见图5-4)。然后才顺序执行该段微程序,这是真正的指令执行过程。

在所有机器指令的执行过程中,“取指”和“译码”是必不可少的,而且微指令执行的操作也是相同的,这些微指令称为公用微指令,对应于图8-2中01、02、75地址的微指令。75地址为“译码”微指令,该微指令的操作为P(1)测试,测试结果出现多路分支。本实验用指令寄存器的前4位(I7-I4)作为测试条件,出现12路分支,占用12个固定微地址单元。如I7—I4相同,则还需进行P2测试,以指令寄存器的I3、I2位作为测试条件,以区分不同的指令,如MOV指令和IN、OUT指令。

表8-3即为将图8-2的微程序流程按微程序格式转化而成的二进制微代码表。

计算机组成原理实验指导书 - 87 -

(3) 监控显示【CtL1=_】时,输入2,按【确认】显示【U_Addr】 ,此时输入6位二进制微地址,进入读代码状态。再按【确认】显示【PULSE】,此时按【单步】键,显示【U_Addr】,微地址指示灯显示输入的微地址,微代码显示电路上显示该地址对应的微代码,至此完成一条微指令的读过程。

(4) 对照表8-3表检查微代码是否有错误,如有错误,可按步骤2重新输入微代码。 4. 写机器指令

(1) 先将K1K2K3K4拨到运行状态即K1 on、K2 off、K3 on、K4 off,按【RESET】按钮对单片机复位,使监控指示灯滚动显示【CLASS SELECt】状态。

(2) 按【实验选择】键,显示【ES--_ _ 】输入08或8,按【确认】键,显示【ES08】,再按【确认】。

(3) 监控显示【CtL1=_】,按【取消】键,监控指示灯显示【CtL2=_】,输入1显示【CtL2_1】表示进入对机器指令操作状态,此时拨动CLR清零开关(在控制开关电路上,注意对应的JUI应短接)对地址寄存器、指令寄存器清零。确定清零后,按【确认】显示闪烁【PULSE】。连续按【单步】键,当微地址显示灯显示“001100”时,按【确认】键,监控指示灯显示【data】,提示输入机器指令“48”或“0048”(两位或4位十六进制数),输入后按【确认】,显示【PULSE】,再按【单步】,微地址显示灯显示“111100”,数据总线显示灯显示“0000000001001000”至此完成第一条机器指令的输入。

(4) 再连续按【单步】,微地址显示灯显示“001100”时,按【确认】输入第二条机器指令。依此规律逐条输入表8-5的机器指令,输完后,可连续按【取消】或【RESET】键退出写机器指令状态。注意,每当微地址显示灯显示“001100”时,地址指示灯自动加1显示。如输入指令为8位,则高8位自动变为0。

地址(十六进制) 00 01 02 03 04 05 06 07 08

机器指令(十六进制) 0048 0005 0001 0094 00F0 0082 0046 0008 0000 计算机组成原理实验指导书 - 88 - 表8-5 实验八机器指令表

5. 读机器指令及校验机器指令:

在监控指示灯显示【CtL2=_】状态下,输入2,显示【CtL2_2】,表示进入读机器指令状态,按步骤4的方法拨动CLR开关对地址寄存器和指令寄存器进行清零,然后按【确认】键,显示【PULSE】,连续按【单步】键,微地址显示灯显示从“000000”开始,然后按“001000”、 “001010” 、“111011”方式循环显示。当微地址灯再次显示为“001000”时,输出显示数码管上显示写入的机器指令。读的过程注意微地址显示灯,地址显示灯和数据总线指示灯的对应关系。如果发现机器指令有误,则需重新输入机器指令。

注意:机器指令存放在RAM里,掉电丢失,故断电后需重新输入。 6. 运行程序

在监控指示灯显示【CtL2=_】状态下,输入3,显示【CtL2_3】,表示进入运行机器指令状态,按步骤4的方法拨动CLR开关对地址寄存器和指令寄存器进行清零,使程序入口地址为00H,可以【单步】运行程序也可以【全速】运行,运行过程中提示输入相应的量,运行结束后从输出显示电路上观察结果。 八、实验结果说明

根据本实验的微程序流程图图8-2来观察程序运行的过程,并验证运行结果是否正确。参考结果:输入“1111H”,输出显示“2224H”。 Ⅱ、开关控制操作方式实验

本实验中所有控制开关拨动,相应指示灯亮代表高电平“1”,指示灯灭代表低电平“0”。 连线时应注意:对于横排座,应使排线插头上的箭头面向自己插在横排座上;对于竖排座,应使排线插头上的箭头面向左边插在竖排座上。 1. 在图8-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

计算机组成原理实验指导书 - 89 -

2.实验步骤:

1).写微代码 (以写表8-4的微代码为例) :

首先将微程序控制电路上的开关K1K2K3拨到写入状态,即K1 off、K2 on、K3 off,然后将24位微代码输入及显示电路上的开关K4拨到on状态。置控制开关UA5 …… UA0=“000000”,输入微地址“000000”, 置24位微代码开关MS24---MS1为:“00000000 01111111 10001000”,输入24位二进制微代码,即“007F88”,按【单步】,微地址灯显示“000 000”,写入微代码。保持K1K2K3K4状态不变,写入表8-4的所有微代码。

2).读微代码并验证结果:

将微程序控制电路上的开关K1K2K3拨到读出状态,即K1 off、K2 off、K3 on,然后将24位微代码输入及显示电路上的开关K4拨到off状态。置控制开关UA5 …… UA0=“000000”,输入微地址“000000”, 按【单步】,微地址灯显示“000 000”,24位微代码显示“00000000 01111111 10001000”,即第一条微代码。保持K1K2K3K4状态不变,改变UA5 …… UA0微地址的值,读出相应的微代码,并和表8-3的微代码比较,验证是否正确。如发现有误,则需重新输入该微地址相应的微代码。 3).写机器指令

将微程序控制电路上的开关K1K2K3拨到运行状态,即K1 on、K2 off、K3 on,然后将24位微代码输入及显示电路上的开关K4拨到off状态。拨动控制开关电路上的清零开关CLR,对地址寄存器、指令寄存器清零。确定清零后,把控制开关CA1、CA2置为“10”,按动一次【单步】按钮,微地址显示灯显示“001001”,再按动一次【单步】,微地址灯显示 “001100”,此时通过数据输入电路的开关输入要写入的机器指令,置D15----D0=“000000000100 1000”,按【单步】,即完成本实验的第一条机器。再按【单步】,微地址显示灯(黄色)显示“111100”,数据总线显示灯显示“0000000001001000”,即输入的机器指令。再连续按【单步】,微地址显示灯(黄色)显示“001100”时,按上面的方法通过数据输入电路的开关输入第二条机器指令指令“000000000000 0101”,直至写完表8-5的所有二进制机器指令。注意,每当微地址显示灯显示“001100”时,地址指示灯自动加1显示。

4).读机器指令及校验机器指令:

拨动控制开关电路上的清零开关CLR,对地址寄存器、指令寄存器清零,清零结果是微地址指示灯(6个黄色指示灯)和地址指示灯(8个黄色指示灯,在地址寄存器电路上)全灭,置CA1、CA2开关置为“00”, 连续按【单步】键,微地址显示灯(黄色)显示从“000000”开始,然后按“001000”、 “001010” 、“111011”方式循环显

计算机组成原理实验指导书 - 90 -

示。当微地址灯再次显示为“001000”时,输出显示数码管上显示写入的机器指令。读的过程注意微地址显示灯,地址显示灯和数据总线指示灯的对应关系。如果发现机器指令有误,则需重新输入机器指令。

注意:机器指令存放在RAM里,掉电丢失,故断电后需重新输入。 5).运行程序

将微程序控制电路上的开关K1K2K3拨到运行状态,即K1 on、K2 off、K3 on,然后将24位微代码输入及显示电路上的开关K4拨到off状态。拨动控制开关电路上的清零开关CLR,对地址寄存器、指令寄存器清零,清零结果是微地址指示灯和地址指示灯全灭,使程序的入口地址位00H,置CA1、CA2开关置为“11”连续按【单步】,当微地址显示灯显示“010 100”时,通过数据输入电路输入二进制数据, 再连续按【单步】来运行程序。实验结果参照键盘实验的结果。

本文来源:https://www.bwwdw.com/article/k0vx.html

Top