模型机实验报告(共18页)_第1页
模型机实验报告(共18页)_第2页
模型机实验报告(共18页)_第3页
模型机实验报告(共18页)_第4页
模型机实验报告(共18页)_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选优质文档-倾情为你奉上哈尔滨工程大学实 验 报 告实验名称: 复杂模型机设计与实现班 级: 学 号: 姓 名: 实验时间: 成 绩: 指导教师: 程旭辉 附小晶实验室名称: 计算机专业实验中心一、 实验名称: 复杂模型机的设计与实现二、 实验目的:1综合运用所学计算机原理知识,设计并实现较为完整的计算机。2设计指令系统。3编写简单程序,在所设计的复杂模型计算机上调试运行。三、实验设备: GW-48CPP系列计算机组成原理实验系统。四、实验原理:1数据格式模型机采用定点补码表示法表示数据,字长为8位,其格式如下:7符号尾数其中第7位为符号位,数值表示范围是:-11。2指令格式所设计的指令分为

2、四大类共十六条,其中包括算术逻辑指令、I/O指令、访问、转移指令和停机指令。(1)算术逻辑指令设计9条算术逻辑指令并用单字节表示,采用寄存器直接寻址方式,其格式如下: 7654 3210OP-CODErsrd其中,OP-CODE为操作码,rs为源寄存器,rd为目的寄存器,并规定:Rs或rd选定的寄存器000110R0R1R2(2)访问指令及转移指令访问指令有2条,即存数(STA)、取数(LDA);2条转移指令,即无条件转移(JMP)、结果为零或有进位转移指令(BZC),指令格式为:7654321000MOP-CODErdD其中,OP-CODE为操作码,rd为目的寄存器地址(用于LDA、STA指

3、令)。D为位移量(正负均可),M为寻址模式,其定义如下:寻址模式M有效地址E说明00011011E=DE=(D)E=(RI)+DE=(PC)+D直接寻址间接寻址RI变址寻址相对寻址在本模型机中规定变址寄存器RI为寄存器R2。(3)I/O指令输入(IN)和输出(OUT)指令采用单字节指令,其格式如下:76543210OP-CODEaddrrd其中,addr=01时选中“INPUT DEVICE”中的键盘输入设备,addr=10时,选中“OUTPUT DEVICE”中的LCD点阵液晶屏作为输出设备。(4)停机指令指令格式如下:76543210OP-CODE00003指令系统共有16条基本指令,其中

4、算术逻辑指令7条,访问内存指令和程序控制指令4条,输入/输出指令2条,其他指令1条。各条指令的格式、汇编符号、功能如表7-1所示。助记符号指令格式功能CLR rdMOV rs,rdADC rs,rdSBC rs,rdINC rdAND rs,rdCOM rdRRC rs,rdRLC rs,rd011100rd0 rd1000rsrdrs rd1001rsrdrs + rd + cy rd1010rsrdrs rd cy rd1011rdrd + 1 rd1100rdrs rd rd1101rd rd1110rd1111rdLDA M,D,rdSTA M,D,rdJMP M,DBZC M,D00

5、M00rdDE rs00M01rdDrd E00M10rdDE PC00M11rdD当CY=1或Z=1时,E PCIN addr,rdOUT addr,rd010001rdaddr rd010110rdrd addrHALT01100000停机本模型机的数据通路框图如图7-1。根据机器指令系统要求,设计微程序流程图及确定微地址,如图7-2。图7-2 微程序流程图五、实验内容:按照系统建议的微指令格式,参照微指令流程图,将每条微指令代码化,译成二进制代码表,并将二进制代码表转换为联机操作时的十六进制格式文件。微代码定义如表7-1所示。2423222120191817169 8 7654321S3

6、S2S1S0MCnWEA9A8ABCuA5uA4uA3uA2uA1uA0微程序$M00 $M01 01ed82$M02 00c050$M03 00a004$M04 00e0a0$M05 00e006$M06 00a007$M07 00e0a0$M08 00ed8a$M09 00ed8c$M0A 00a030$M0B $M0C 00202f$M0D 00a00e$M0E 01b60f$M0F 95ea25$M10 00ed83$M11 00ed85$M12 00ed8d$M13 00eda6$M14 $M15 $M16 $M17 3d9a01$M18 $M19 01a22a$M1A 03b22c

7、$M1B 01a432$M1C 01a233$M1D 01a426$M1E $M1F $M20 $M21 $M22 05db81$M23 0180e4$M24 $M25 95aaa0$M26 00a027$M27 01bc28$M28 95ea29$M29 95aaa0$M2A 01b42b$M2B 959b41$M2C 01a42d$M2D 65ab6e$M2E 059a01$M2F 078a09$M30 050a08$M31 $M32 059a01$M33 01b435$M34 05db81$M35 b99a41$M36 0d9a01$M37 $M38 $M39 $M3A $M3B 070

8、a08$M3C $M3D $M3E $M3F 六、实验框图设计:模型机设计主要是包括:控制器、存储器、运算器、输入、输出。主要的设计是SE-5是根据FC,FZ,T4,P4.1,SWA,SWB,I7.2来控制输出的SE1.6,控制地址的跳转。当SE输出0时Q输出1,当SE输出1时,Q输出D;SE-5:(SE 6-1):在波形图中实现跳转的时候,会出现如图:刚开始对此变化不理解,自习观察SE6-1时,SE6.1作为控制端,SE为1时Q输出D,SE为0时Q输出1,达到跳转的功能,但是还隐含一个细节是:在SE有0的时候,SE不用T2的时钟触发,地址会直接会发生跳转,所以会出现如图微地址由20直接跳到3

9、1。1和3:移位寄存器:SHEFT 和控制移位器的进位:说明:移位寄存器的M位有M20来控制,S1.0由M22.21来控制,控制进位由SHE_C0来控制,假设上次的移位器有进位,那么上次的SHEFT_CN输出1,在控制移位器进位的器件上,当需要进位时,即:AR=1,(通过观察微指令开看AR进位时才选中)那么会有进位,此时在下一次带进位的移位时,SHE_C0=1;2.控制ALU进位的器件: 说明:在此器件中,AR为控制端,上次的进位溢出位FC连到D0上M19与Q非的或,连接到ALU_CN,当M19=1时表示不带进位的运算,那么ALU_CN的结果肯定是1,在下次运算时肯定是不带进位的运算。当M19

10、=0,时,表示运算器运算是带进位的运算,若上次的运算FC=1,若选中AR则,表示本次的运算时带进位的运算,则在T2周期时,Q=1,那么ALU_CN的输出是0,将结果输入到ALU的进位控制端,控制本次的进位运算。4通过编程控制可编码寄存器的选择:.内部结构:说明:这是通过两个2-4译码器组合而成的选择器,根据decoder_b产生的控制信号,并且在编程时编写的I0I3指令来控制,RS,RD,RI.寄存器的选择。为了方便起见,在实验过程中用一一对应的实现:R0àRS;R1àRD;R2àRI;七、程序表设计:表7-2微指令格式121110选择000001RS-B010R

11、D-B011RI-B100299-B101ALU-B110PC-B987选择000001P(1)010P(2)011P(3)100P(4)101AR110LDPC151413选择000001LDRi010LDDR1011LDDR2100LDIR101LOAD110LDARA字段B字段C字段实验程序如下:根据框图的设计以及书中的指令系统功能表,在编码的时候考虑到的情况主要是用指令指定哪个寄存器,以及在实现LDA,STA,JMP,BZC,是选用的哪种寻址方式,为了全面的测试框图实现功能的正确性,在设计程序流程的时候所有的功能,以及所有的寻址方式都用到了,下面就是我设计的实验程序:地址数据16进制表

12、示助记符0041IN:SW->RD(27)0140IN:SW->RS(26)02A1SBC:(RD-RS)=>RD0359OUT:RD=>LED0491ADC:(RD+RS)=>RD0559OUT:RD=>LED06B1INC:RD+1=>RD0759OUT:RD=>LED08C1AND:(RD)AND(RS)=>RD0959OUT:RD=>LED0AD1COM:RD取反=>RD0B59OUT:RD=>LED0CE1RRC:将RS中的数循环左移0D59OUT:RD=>LED0EF1RLC:将RS中的数循环右移0F59

13、OUT:RD=>LED1081MOV:RS->RD 1159OUT:RD=>LED1242IN:SW=>RI (存入的数:10H)1301LDA:RAM=>RD141E把1E里的数送到RD中1515STA:RD=>RAM161F将RD中的数存到1F的地址中去172AJMP:1811在变址寻址中用到(10H+11H)193DBZC:1A03 没有用到1B60HALT:停机指令1C00没有用到1D00没有用到1E0F在执行LDA是会用到0F1F0F在执行STA时会存到此地址2000在执行LDA存到此位置21OUT读出RD中的数222AJMP:跳回到断点位置230

14、9执行JMP时用到此数将设计好的程序表写入到内存中,然后读内存,然后执行程序。七、实验过程分析:模型机过程分析:1. 首先在ROM中已经存入了微代码,这里,在实验中发现35是错误的,正确的应该是:01A426,这是通过实验验证的。在SE-5的控制下,产生SE信号,控制微代码的后六位是否发生改变,从而判定是否发生跳转,产生的微地址送到uaddr中,指示到下一条的指令。2. 每一条微代码,通过decodera,decoderb,decoderc,decoder2-4产生相应的控制信号,在观察了四个器件的的内部结构后,得出decodera选中的信号是输出1,得出decoderb选中的信号是输出0,得

15、出decoderc选中的信号是输出1,decoder2-4输出0,这样在结合74148优先权编码器后才能完整的控制总线以及相应的输出。3. reg_3是可编程寄存器,利用指令可以选用不同的寄存器,在此模型机自己设计了一个DECODERREG部件通过,RD_B, RD_B, RD_B,以及I3-I0来控制选用相应的寄存器。为了方便起见,在实验过程中用一一对应的实现:R0àRS;R1àRD;R2àRI;4. 在微程序流程图中在进行相对寻址时框图47是错误的应该是:PC àBUS,BUSàDR2;波形图分析:1. 开始执行程序,执行指令是40,执行的

16、是IN指令,将27存入了指定的寄存器RD。说明:为编程方便用I0,I1,I2,I3,来控制选取:2. 此时指令是:40,将26存入RS:3.指令:A1:(RD-RS)=27-26=01,将结果存入RD中。4.将RD中的结果输出到led中显示:此时的指令是(OUT:59)。5.执行ADC(91)指令:()()存入中:.执行OUT指令,将中的结果输出:执行INC指令,并将加的结果输出到中:.执行AND(C1)指令,(RD)AND(RS)=(28 AND26)=20,然后执行OUT(59)指令,并将结果输出到led中显示:9.执行COM取反指令,RD中的值是20取反后为DF,并执行OUT指令后在le

17、d中显示:10.执行RRC指令,RS中值是26循环右移后的结果是13,并执行OUT指令,在led中显示:11.执行RLC指令,将RS中的26循环左移后的结果是4C并将结果在led中显示:12.执行MOV指令(RS->RD)=26,并执行OUT指令,在led中显示:13.先执行IN指令(),将10存入到指定的RI寄存器中,然后执行LDA指令,将指令中的0F存入到RD中。14.通过间接寻址方式执行STA(15)存数指令,将RD中的0F存入到RAM中:15.通过变址寻址方式执行JMP指令,跳到21执行OUT指令,读出LDA中RD中的数:16.执行OUT指令,将RD中的数读出来,然后执行JMP指令跳回到断点地址继续执行。17.通过相对寻址方式,执行BZC指令:在PC 值为1A时将PC送到AR,此时RAM里的值是03H,并送入DR1,在执行完微地址为23后,PC的值变为1B,将1BH送入DR2中,03H与1BH相加,相加后FC与FZ的值都不为1,所以在进行P(3)测试后跳到了44.八、实验结果中遇到的问题:实验结果中遇到的问题:在刚开始的时候,在看流程图时,在刚开始的时候,明白微地址的跳转是如何实现的,但是每个框图的具体实现却搞得不是很明白,在看明白了decodea, decodeb, decodec,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论