实验7-带移位运算模型机实验指导1/11实验七、带移位运算的模型机组成原理实验一、实验目的:在实验六的基础上进一步构造一台带移位功能的简单模型机。二、预习要求:1认真预习本实验的相关知识和内容。三、实验设备:EL-JY-II型计算机组成原理实验系统一套,排线若干。四、模型机结构:图7-1模型机结构框图图中运算器ALU由U7—U10四片74LS181构成,暂存器1由U3、U4两片74LS273实验7-带移位运算模型机实验指导2/11构成,暂存器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位,其控制位顺序如下:242322212019181716151413121110987654321S3S2S1S0MCnWE1A1BF1F2F3uA5uA4uA3uA2uA1uA0F1、F2、F3三个字段的编码方案如表7-1:F1字段F2字段F3字段151413选择121110选择987选择000LDRi000RAG000P1001LOAD001ALU-G001AR010LDR2010RCG010P3011自定义011自定义011自定义100LDR1100RBG100P2101LAR101PC-G101LPC110LDIR110299-G110P4111无操作111无操作111无操作表7-1实验7-带移位运算模型机实验指导3/11系统涉及到的微程序流程见图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的微程序流程按微指令格式转化而成的“二进制微代码表”。六、实验参考代码:本实验采用条机器指令,根据上面所说的工作原理,设计参考实验程序如下:地址(二进制)机器指令码助记符说明0000000000000000INAX,KIN数据输入电路AX0000000100100001MOVBx,01H0001HBx00000010000000010000001101010000ROLAxAx循环左移一位0000010000010000ADDAx,BxAx+BxAx0000010101100000RORAxAx循环右移一位0000011000110000OUTDISP,AxAx输出显示电路0000011101000000JMP00H00HPC0000011000000000注:其中MOV、JMP为双字长(32位),其余为单字长指令。对于双字长指令,第一字为操作码,第二字为操作数;对于单字长指令只有操作码,没有操作数。上述所有指令的操作码均为低8位有效,高八位默认为0。而操作数8位和16位均可。KIN和实验7-带移位运算模型机实验指导4/11DISP分别为本系统专用输入、输出设备。图7-2(a)sreg表示移位寄存器控制开关00P(4)测试MWE(10)MRD(00)RUN(11)PCAR,PC+121PCAR,PC+12023(D_INPUT)D_BUSLT124RAMD_BUSLT12201LT1RAM30LT1LED27图7-2(b)表7-2为根据本实验程序流程图设计的二进制微代码表:微地址S3S2S1S0MCNWE1A1BF1F2F3UA5…UA0000000000000000111111110010000实验7-带移位运算模型机实验指导5/11000001000000000101101101000010000010000000010110111111011001000011000000000010100111000110000110100101000000001111000001000111000000010000111111000001001000000000011000111000000001001001000000000100000111000011001010000000000101101101000111001011000000101111000111000001001100000000000101101101011010001101001100000000000111011011001110001100000000000111011101010000000000000101101101010010010001000000000101101101010100010010000000010100111111010111010011000000000111111111000001010100000000011100111111011000010111000001101111001111010000011000111111110111001111010001011001000000010110111000001000011010000000010001111101000001011011000100000111110111011100011100000000000000110111000001011101001000000111110111011110011110000000000000110111000001表7-2实验七的二进制微代码表七、实验步骤:Ⅰ、单片机键盘操作方式实验在进行单片机键盘操作实验时,必须把K4开关置于“OFF”状态,否则系统处于自锁状态,无法进行实验。1.实验连线:实验连线图如图7-3所示。连线时应按如下方法:对于横排座,应使排线插头上的箭头面向自己插在横排座上;对于竖排座,应使排线插头上的箭头面向左边插在竖排座上。2.写微代码:(1)将开关K1K2K3K4拨到写状态即K1off、K2on、K3off、K4off,其中K1、K2、K3在微程序控制电路,K4在24位微代码输入及显示电路上。在监控指示灯滚动显示【CLASSSELECt】状态下按【实验选择】键,显示【ES--__】输入07或7,按【确认】键,显示为【ES07】,再按下【确认】键。(2)监控显示为【CtL1=_】,表示对微代码进行操作。输入1显示【CtL1_1】,表示写微代码,按【确认】。实验7-带移位运算模型机实验指导6/11(3)监控显示【U-Addr】,此时输入【000000】6位二进制数表示的微地址,然后按【确认】键,监控指示灯显示【U_CodE】,此时输入微代码【007F90】,该微代码是用6位十六进制数来表示前面的24位二进制数,注意输入微代码的顺序,先右后左,按【确认】键则显示【PULSE】,按【单步】完成一条微代码的输入,重新显示【U-Addr】提示输入表7-3第二条微代码地址。(4)按照上面的方法输入表7-3微代码,观察微代码与微地址显示灯的对应关系(注意输入微代码的顺序是由右至左)。微地址(八进制)微地址(二进制)微代码(十六进制)00000000007F9001000001005B4202000010016FD9030000110029C6060001109403C107000111010FC110001000018E01110010010041C312001010005B471300101102F1C114001100005B5Aa150011013001DB160011103001DD20010000005B5221010001005B5422010010014FD723010011007FC12401010001CFD82501010106F3C126010110011F412701011106F3D030011000FF73D131011001016E0832011010011F4133011011107DDC34011100000DC135011101207DDE36011110000DC1表7-3实验七微代码表3.读微代码及校验微代码:实验7-带移位运算模型机实验指导7/11(1)先将开关K1K2K3K4拨到读状态即K1off、K2off、K3on、K4off,按【RESET】按钮对单片机复位,使监控指示灯滚动显示【CLASSSELECt】状态。(2)按【实验选择】键,显示【ES--__】输入07或7,按【确认】键,显示【ES07】。按【确认】键,显示【CtL1=_】时,输入2,按【确认】进入读代码状态。(3)监控显示【U_Addr】,此时输入6位二进制微地址,再按【确认】显示【PULSE】,此时按【单步】键,微地址指示灯显示输入的微地址,微代码显示电路上显示该地址对应的微代码,至此完成一条微指令的读过程。(4)此时监控显示【U_Addr】,按照上述步骤继续输入微地址,对照表7-2表检查微代码是否有错误,如有错误,可按步骤2重新输入微代码。4.写机器指令(1)先将K1K2K3K4拨到运行状态即K1on、K2off、K3on、K4off,按【RESET】按钮对单片机复位,使监控指示灯滚动显示【CLASSSELECt】状态。(2)按【实验选择】键,显示【ES--__】输入07或7,按【确认】键,显示【ES07】,再按【确认】。(3)监控显示【CtL1=_】,按【取消】键,监控指示灯显示【CtL2=_】,输入1显示【CtL2_1】表示进入对机器指令写操作状态,此时拨动CLR清零开关对地址寄存器、指令寄存器清零。(4)确定清零后,按【确认】显示闪烁的【PULSE】,连续按【单步】键,当微地