实用文案标准复杂模型机设计实验一、实验目的综合运用所学计算机原理知识,设计并实现较为完整的计算机。二、实验设备TDN-CM+计算机组成原理教学实验系统。三、数据格式及指令系统1.数据格式模型机规定采用定点补码表示法表示数据,且字长为8位,其格式如下:D7D6D5D4D3D2D1D0符号尾数2.指令格式模型机设计四大类指令共十六条,其中包括算术逻辑指令、I/O指令、访问及转移指令和停机指令。1)算术逻辑指令设计7条算术逻辑指令并用单字节表示,寻址方式采用寄存器直接寻址,其格式如下:D7D6D5D4D3D2D1D0OP-CODErsrd其中,OP-CODE为操作码,rs为源寄存器,rd为目的寄存器,并规定:rs或rd选定的寄存器000110R0R1R27条算术逻辑指令的名称、功能和具体格式见表2)访存指令及转移指令实用文案标准模型机设计2条访存指令――存数(STA)和取数(LDA),2条转移指令――无条件转移(JMP)和结果为零或有进位转移指令(BZC),这4条指令长度为2个字节,其指令格式为:D7D6D5D4D3D2D1D000MOP-CODErdD其中,OP-CODE为操作码,rd为目的寄存器地址(LDA、STA指令使用)。D为偏移量(正负均可),M为寻址模式,其定义如下:寻址模式M有效地址E说明00011011E=DE=(D)E=(RI)+DE=(PC)+D直接寻址间接寻址RI变址寻址相对寻址本模型机规定变址寄存器RI指定为寄存器R2。3)I/O指令输入(IN)和输出(OUT)指令采用单字节指令,其格式如下:D7D6D5D4D3D2D1D0OP-CODEaddrrd其中,addr=01时,选中“INPUTDEVICE”中的开关组作为输入设备,addr=10时,选中“OUTPUTDEVICE”中的数码块作为输出设备。4)停机指令指令格式如下:D7D6D5D4D3D2D1D0OP-CODE0000HALT指令用于实现停机操作。3.指令系统本模型机共有16条基本指令,其中算术逻辑指令7条,访存指令和程序控制指令4条,输入输出指令2条,其它指令1条,表列出了各条指令的实用文案标准格式、汇编符号、指令功能。表1助记符号指令格式功能CLRrdMOVrs,rdADCrs,rdSBCrs,rdINCrdANDrs,rdCOMrdRRCrs,rdRLCrs,rd1000rsrd1001rsrd1010rsrd1011rd1100rsrd1101rd1110rsrd1111rsrd011100rd0→rdrs→rdrs+rd+cy→rdrs-rd-cy→rdrd+1→rdrs∧rd→rdrd→rdcyrsrs→rdcyrsrs←rdLDAM,D,rdSTAM,D,rdJMPM,DBZCM,D00M01rd00M10rdD00M11rdD00M00rdDE→rsrd→EE→PC当CY=1或Z=1,E→PC实用文案标准INaddr,rdOUTaddr,rd010001rd010101rdaddr→rdrd→addrHALT01000000停机四、总体设计本模型机的数据通路框图如图所示。DR1(74273)DR2(74273)ALU-BR0(74374)AR(74273)PC(74161)MEM(6116)OUTPUT时序微控器IR(74273)INPUTALU(74181)CELED-BW/RCESW-BCECEW/RLDART3PC-BLOADLDPCT4W/RCS0CS1CS2LDIRT3T4LDR0R0-BLDDR1T4T4LDDR2CNMS3S2S1S0BUS地址总线数据总线CPUR1(74374)T4LDR1R1-BR2(74374)T4LDR2R2-B图1:数据通路图根据机器指令系统的要求,设计微程序流程图及确定微地址如下:实用文案标准PCARPC+1RAM-BUSBUS-IRP(1)0102CLR2720ALU=0-BUSBUS-rd01STOP0126HLTSW-BUSBUS-rd0124INPC-ARPC+1RAM-BUSBUS-DR1PC-BUSBUS-DR24623DR1+DR2-BUS-ARDR1+DR2-BUS-DR14750514011(相对)PC-ARPC+1RAM-BUSBUS-DR1(R1)-DR21522DR1+DR2-BUS-ARDR1+DR2-BUS-DR11617454010(变址)PC-ARPC+1RAM-BUSBUS-ARRAM-BUSBUS-DR10521RAM-BUSBUS-AR06074001(间接)PC-ARPC+1RAM-BUSBUS-DR1RAM-BUSBUS-AR0320044000(直接)P(2)RAM-BUSBUS-rdLAD4001rd-BUSBUS-RAMSTA4101DR1-BUSBUS-PCJMP4201LAD43P(3)DR1-BUSBUS-PC01Y016444Nrd-BUS0125OUTrs-rd0130MOVrs-BUSBUS-DR1rd-BUSBUS-DR2DR1+DR2-BUS-rd52315301ADCrs-BUSBUS-DR2RAM-BUSBUS-DR1DR1-DR2-BUS-DR1带进位5432DR1-rd555601SUCrd-BUSBUS-DR1DR1+1-BUS-rd6233INC01rs-BUSBUS-DR1rd-BUSBUS-DR2DR1+DR2-BUS-rd633465AND01rd-BUSBUS-DR1DR1-BUSBUS-rd6635COM01R0-299带进位右环移6736RRC70R0-299带进位左环移7137RLC72299-R0299-R00101P(4)0020PC-ARPC+1RAM-BUSBUS-DR1DR1-LEDPC-ARPC+1(SW)-BUSBUS-DR1DR1-RAM2301202227212430(SWB,SWA)KWE(01)KWD(00)RP(11)控制台运行微程序实用文案标准图2:微程序流程图根据流程图,确定如下微程序:微程序:$M00018108$M2205DB81$M0101ED82$M230180E4$M0200C050$M24018001$M0300A004$M2595AAA0$M0400E0A0$M2600A027$M0500E006$M2701BC28$M0600A007$M2895EA29$M0700E0A0$M2995AAA0$M0801ED8A$M2A01B42B$M0901ED8C$M2B959B41$M0A00A03B$M2C01A42D$M0B018001$M2D65AB6E$M0C00203C$M2E0D9A01$M0D00A00E$M2F01AA30$M0E01B60F$M300D8171$M0F95EA25$M31959B41$M1001ED83$M32019A01$M1101ED85$M3301B435$M1201ED8D$M3405DB81$M1301EDA6$M35B99B41$M14001001$M360D9A01$M15030401$M37298838$M16018016$M38019801$M173D9A01$M3919883A$M18019201$M3A019801实用文案标准$M1901A22A$M3B070A08$M1A01B22C$M3C068A09$M1B01A232$M1C01A233$M1D01A236$M1E318237$M1F318239$M20009001$M21028401验证程序:助记符机器码IN01,R0$P0044IN01,R2$P0146SBCR2,R0$P02A8MOVR0,R1$P0381RLCR1,R1$P04F5OUTR1,R1$P0559HALT$P0660指令功能:在实验板的数据开关手动输入一个数存到R0寄存器里,在输入另一个数到R2寄存器里,然后用R2-R0存到R0寄存器里,接着把R0里的数转存到R1寄存器,然后再把R1的数左移一位存到R1,接着在数码管显示输出当前R1寄存器里的数,最后停止。五、实验步骤1.按图连接实验线路实用文案标准2.写入程序1)手动写入A.按如下步骤讲微代码写入微控器中的存储器2816中:①将编程开关置为PROM(编程)状态。②将实验板上“STATEUNIT”中的“STEP”置为“STEP”,“STOP”置为“RUN”状态。③用二进制模拟开关置微地址MA5—MA0。④在MK24-MK1开关上置微代码,24位开关对应24位显示灯,开关量置为“0”时灯亮,开关量为“1”时灯灭。⑤启动时序电路(按动启动按钮“START”),即将微代码写入到2816的相应地址对应的单元中。⑥重复①-⑤步骤,将所有的微代码写入2816中。B.按如下步骤校验微代码①将编程开关置为READ(校验)状态。②将实验板上“STATEUNIT”中的“STEP”置为“STEP”,“STOP”置为“RUN”状态。③用二进制模拟开关置微地址MA5—MA0。④启动时序电路(按动启动按钮“START”),读出微代码。观察显示灯MD24-MD1的状态(灯亮为“0”,灭为“1”),检查读出的微代码是否与写入的相同。如果不同,则将开关置于PROM编程状态,重新执行③)即可。C.按如下步骤使用KWE微程序进行机器指令程序的装入。①使编程开关处于“RUN”,STEP为“STEP”状态,STOP为“RUN”状态。②拨动总清开关CLR(0→1→0),微地址寄存器清零,程序计数器清零,然后使控制台SWB、SWA开关置为“01”,并按动一次START,微地址显示灯显示“010001”。③再按动一次START,微地址灯显示“010100”,此时数据开关的内容置为要写入的机器指令。再按动两次START键后,即完成该条指令的写入,并且微地址显示灯显示“010001”。(注:由KWE的流程图可知,该流程每执行一次,将向PC寄存器所指向的存储器单元中写入一个字节的数据,并且将PC加1。)④如果还需要向存储器中输入数据,则需重复重新执行③。D.按如下步骤使用KRD微程序进行机器指令程序的检查。①使编程开关处于“RUN”,STEP为“STEP”状态,STOP为“RUN”状态。②拨动总清开关CLR(0→1→0),微地址寄存器清零,程序计数器清实用文案标准零,然后使控制台SWB、SWA开关置为“00”,并按动一次启动开关START,微地址显示灯显示“010000”。③再按动一次START,微地址灯显示“010010”,第三次按动STRAT,微地址灯显示为“010111”,再按动STRAT后此时输出单元的数码管显示为PC寄存器所指单元的内容。(注:由KRD的流程图可知,该流程每执行一次,将显示PC寄存器所指向的存储器单元中一个字节的数据,并且将PC加1。)④如果还需要检查存储器中其他单元的数据,则需重复重新执行③。2)联机读/写程序将微代码写入文本文件中,通过联机软件载入实验系统。3.运行程序1)本机运行A.单步运行程序①使编程开关处于“RUN”状态,STEP为“STEP”状态,STOP为“RUN”状态。②拨动总清开关CLR(0→1→0),微地址寄存器清零,程序计数器清零。③单步运行一条微指令,每按动一次START键,即单步运行一条微指令。对照微程序流程图,观察微地址显示灯是否与流程一致。④当运行结束后,可检查存数单元(0BH)中的结果是否和理论计算结果一致。B.连续运行程序①使编程开关处于“RUN”状态,STEP为“EXEC”状态,STOP为“RUN”状态。②拨动总清开关CLR(0→1→0),微地址寄存器清零,程序计数器清零。③按动START键,系统将连续运行程序,直至将STOP拨至“STOP”状态。④当运行结束后,可检查存数单元(0BH)中的结果是否和理论计算结果一致。2)联机运行联机运行程序时,进入