基于复杂模型机两个8位二进制数乘法的实现_第1页
基于复杂模型机两个8位二进制数乘法的实现_第2页
基于复杂模型机两个8位二进制数乘法的实现_第3页
基于复杂模型机两个8位二进制数乘法的实现_第4页
基于复杂模型机两个8位二进制数乘法的实现_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

1、 计算机组成原理实验报告评语:课中检查完成的题号及题数:成绩:自评分:实验报告实验名称:基于复杂模型机两个8位二进制数乘法的实现日期:本人信息班级:学号:姓名:一、 实验目的:1、 综合运用所学计算机组成原理知识,设计并实现较为完整的计算机;2、 理解计算机运行的原理以及微指令架构;3、 掌握原码一位乘实现的控制流程和硬件配置。二、实验内容: 1、 根据实验指导书提供的复杂模型机电路图连接电路,并校验电路2、 装载示例程序并运行,分析理解所增加的微指令3、 根据复杂模型机现有条件设计两个8位二进制相乘的程序三、项目要求及分析:要求:利用上述模型机通过编写程序实现两个8位二进制数的乘法运算。分析

2、:要求利用复杂模型机现有的指令系统以及硬件电路设计一段实现八位二进制数相乘的程序。因为乘法在计算机中有多种算法实现,包括整数乘、小数乘、原码乘、补码乘等等,因为此次实验并不要求给出一个完整的实用乘法程序段,故实验程序只实现两个八位二进制整数无符号相乘运算。采用算法如下:采用算法如下:乘数 AA7A6A5A4A3A2A1A0 被乘数 B乘积 C = B·A0 +2(B·A1+2(B·A2+ 2·B·A7)其中Ai为0或者1,在机器中使用原码表示2*X是使X左移1位。若不采用循环模式而是直接使用指令将该算法的乘积等式直接表示出来,需要A,B,RL(

3、结果低位),RH(结果高位)四个通用寄存器;而若使用循环模式,则需要除A、B、RL、RH外的CX(控制循环次数以及高低位相与寄存器)和AD(取中间结果高低位)的辅助。此次实验为了充分的接触指令系统,采用循环模式。由于复杂模型机中只有R0、R1、R2、R3四个通用寄存器,故一些原来计划使用的寄存器改为使用主存。另外,因为低位结果相加可能进位,所以修改原微指令ADD为带进位加法。四、具体实现:1. 画出算法流程图该流程图使用了以下6个寄存器CX, AD,A,B,RL,RH;其中CX作为计数以及辅助生成AD的,CX变化为1000 0000初始值0000 00010000 00101000 0000程

4、序结束AD作为被乘数的高低位划分数据, 其中被乘数B中高位对应的AD的位置1,低位置0:0000 0000初始值0000 0001CX OR AD -> AD0000 00111111 1111另流程图中所用6个寄存器在实现中使用MEM代替,CX,AD,A,B使用R2作RL,R3作RH,左移1位等价右移7位。2. 根据算法实现,若需修改指令系统,画出修改后的微程序流程图3编写修改指令系统后的二进制代码表二进制数微代码表地址 十六进制表示 高五位 S3-S0 A字段 B字段 C字段 UA5-UA0 00 00 00 01 00000 0000 000 000 000 000001 01 0

5、0 6D 43 00000 0000 110 110 101 000011 03 10 70 70 00010 0000 111 000 001 110000 04 00 24 05 00000 0000 010 010 000 000101 05 04 B2 01 00000 1001 011 001 000 000001 06 00 24 07 00000 0000 010 010 000 000111 07 01 32 01 00000 0010 011 001 000 000001 08 10 60 09 00010 0000 110 000 000 001001 09 18 30 0

6、1 00011 0000 011 000 000 000001 0A 10 60 10 00010 0000 110 000 000 010000 0B 00 00 01 00000 0000 000 000 000 000001 0C 10 30 01 00010 0000 011 000 000 000001 0D 20 06 01 00100 0000 000 011 000 000001 0E 00 53 41 00000 0000 101 001 101 000001 0F 00 00 CB 00000 0000 000 000 011 001011 10 28 04 01 0010

7、1 0000 000 010 000 000001 11 10 30 01 00010 0000 011 000 000 000001 12 06 B2 01 00000 1101 011 001 000 000001 13 00 24 14 00000 0000 010 010 000 010100 14 05 B2 01 00000 1011 011 001 000 000001 15 00 24 16 00000 0000 010 010 000 010110 16 01 B2 01 00000 0011 011 001 000 000001 17 00 24 18 00000 0000

8、 010 010 000 011000 18 04 32 01 00000 1000 011 001 000 000001 1B 00 53 41 00000 0000 101 001 101 000001 1C 10 10 1D 00010 0000 001 000 000 011101 1D 10 60 8C 00010 0000 110 000 010 001100 1E 10 60 1F 00010 0000 110 000 000 011111 1F 10 10 20 00010 0000 001 000 000 100000 20 10 60 8C 00010 0000 110 0

9、00 010 001100 28 10 10 29 00010 0000 001 000 000 101001 29 00 28 2A 00000 0000 010 100 000 101010 2A 04 E2 2B 00000 1001 110 001 000 101011 2B 04 92 8C 00000 1001 001 001 010 001100 2C 10 10 2D 00010 0000 001 000 000 101101 2D 00 2C 2E 00000 0000 010 110 000 101110 2E 04 E2 2F 00000 1001 110 001 000

10、 101111 2F 04 92 8C 00000 1001 001 001 010 001100 30 00 16 04 00000 0000 001 011 000 000100 31 00 16 06 00000 0000 001 011 000 000110 32 00 6D 48 00000 0000 110 110 101 001000 33 00 6D 4A 00000 0000 110 110 101 001010 34 00 34 01 00000 0000 011 010 000 000001 35 00 00 35 00000 0000 000 000 000 11010

11、1 36 00 6D 51 00000 0000 110 110 101 010001 37 00 16 12 00000 0000 001 011 000 010010 38 00 16 13 00000 0000 001 011 000 010011 39 00 16 15 00000 0000 001 011 000 010101 3A 00 16 17 00000 0000 001 011 000 010111 3B 00 00 01 00000 0000 000 000 000 000001 3C 00 6D 5C 00000 0000 110 110 101 011100 3D 0

12、0 6D 5E 00000 0000 110 110 101 011110 3E 00 6D 68 00000 0000 110 110 101 101000 3F 00 6D 6C 00000 0000 110 110 101 101100 地址 十六进制表示 高五位 S3-S0 A字段 B字段 C字段 UA5-UA0 4. 编写微程序两个8位二进制数的乘法运算程序如下:;机器指令$P 00 20;INPUT TO R0$P 01 00$P 02 22;INPUT TO R2$P 03 00$P 04 61;SET R1 TO 00$P 05 00$P 06 63;SET R3 TO 00$

13、P 07 00$P 08 63;SET R3 TO F8$P 09 F8$P 0A D3;STORE R3 TO 80 AS A TAG$P 0B 80;循环主体$P 0C 63;SET R3 TO 01$P 0D 01$P 0E 1B;AND R2,R3$P 0F F0;BZC TO 12$P 10 12$P 11 01;ADD R0,R1$P 12 63;SET R3 TO 01$P 13 01$P 14 AD;RR R3,R1$P 15 AE;RR R3,R2$P 16 63;SET R3 TO 7F$P 17 7F$P 18 1E;AND R3,R2$P 19 63;SET R3 TO

14、 80$P 1A 80$P 1B 17;AND R1,R3$P 1C 9E;OR R3,R2$P 1D 63;SET R3 TO 01$P 1E 01$P 1F AF;RR R3,R3 JUST TO MAKE FZ NOT EQUAL ONE THEN BZC DEPENDS ON FC$P 20 F0;BZC TO 40$P 21 40$P 22 63;SET R3 TO 7F$P 23 7F$P 24 1D;AND R3,R1 TO MAKE THE HB OF R1 AS 0$P 25 63;SET R3 TO 01$P 26 01$P 27 AF;RR R3,R3 JUST TO .

15、$P 28 C3;LAD 80 TO R3$P 29 80$P 2A 73;R3+$P 2B F0;BZC TO THE END WHICH IS 90$P 2C 90$P 2D D3;STA R3 TO 80$P 2E 80$P 2F E0;JMP TO THE ENTRANCE OF THE CYCLE$P 30 0C;条件转移指令分支$P 40 63;SET R3 TO 80$P 41 80$P 42 9D;OR R3,R1 TO MAKE THE HB OF R1 AS 1$P 43 E0;JMP TO 25$P 44 25;程序结尾$P 90 34;OUTPUT R1$P 91 40

16、$P 92 38;OUTPUT R2$P 93 40$P 94 50;STOP;微指令; /* Start Of MicroController Data */$M 00 000001 ; NOP$M 01 006D43 ; PC->AR, PC加1$M 03 107070 ; MEM->IR, P<1>$M 04 002405 ; RS->B$M 05 04B201 ; A加B->RD$M 06 002407 ; RS->B$M 07 013201 ; A与B->RD$M 08 106009 ; MEM->AR$M 09 183001 ;

17、 IO->RD$M 0A 106010 ; MEM->AR$M 0B 000001 ; NOP$M 0C 103001 ; MEM->RD$M 0D 200601 ; RD->MEM$M 0E 005341 ; A->PC$M 0F 0000CB ; NOP, P<3>$M 10 280401 ; RS->IO$M 11 103001 ; MEM->RD$M 12 06B201 ; A加1->RD$M 13 002414 ; RS->B$M 14 05B201 ; A减B->RD$M 15 002416 ; RS->

18、B$M 16 01B201 ; A或B->RD$M 17 002418 ; RS->B$M 18 043201 ; A右环移->RD$M 1B 005341 ; A->PC$M 1C 10101D ; MEM->A$M 1D 10608C ; MEM->AR, P<2>$M 1E 10601F ; MEM->AR$M 1F 101020 ; MEM->A$M 20 10608C ; MEM->AR, P<2>$M 28 101029 ; MEM->A$M 29 00282A ; RI->B$M 2A 04

19、E22B ; A加B->AR$M 2B 04928C ; A加B->A, P<2>$M 2C 10102D ; MEM->A$M 2D 002C2E ; PC->B$M 2E 04E22F ; A加B->AR$M 2F 04928C ; A加B->A, P<2>$M 30 001604 ; RD->A$M 31 001606 ; RD->A$M 32 006D48 ; PC->AR, PC加1$M 33 006D4A ; PC->AR, PC加1$M 34 003401 ; RS->RD$M 35 000

20、035 ; NOP$M 36 006D51 ; PC->AR, PC加1$M 37 001612 ; RD->A$M 38 001613 ; RD->A$M 39 001615 ; RD->A$M 3A 001617 ; RD->A$M 3B 000001 ; NOP$M 3C 006D5C ; PC->AR, PC加1$M 3D 006D5E ; PC->AR, PC加1$M 3E 006D68 ; PC->AR, PC加1$M 3F 006D6C ; PC->AR, PC加1; /* End Of MicroController Dat

21、a */5. 编写机器指令验证;机器指令$P 00 20;INPUT TO R0$P 01 00$P 02 22;INPUT TO R2$P 03 00$P 04 61;SET R1 TO 00$P 05 00$P 06 63;SET R3 TO 00$P 07 00$P 08 63;SET R3 TO F8$P 09 F8$P 0A D3;STORE R3 TO 80 AS A TAG$P 0B 80;循环主体$P 0C 63;SET R3 TO 01$P 0D 01$P 0E 1B;AND R2,R3$P 0F F0;BZC TO 12$P 10 12$P 11 01;ADD R0,R1$

22、P 12 63;SET R3 TO 01$P 13 01$P 14 AD;RR R3,R1$P 15 AE;RR R3,R2$P 16 63;SET R3 TO 7F$P 17 7F$P 18 1E;AND R3,R2$P 19 63;SET R3 TO 80$P 1A 80$P 1B 17;AND R1,R3$P 1C 9E;OR R3,R2$P 1D 63;SET R3 TO 01$P 1E 01$P 1F AF;RR R3,R3 JUST TO MAKE FZ NOT EQUAL ONE THEN BZC DEPENDS ON FC$P 20 F0;BZC TO 40$P 21 40$P

23、 22 63;SET R3 TO 7F$P 23 7F$P 24 1D;AND R3,R1 TO MAKE THE HB OF R1 AS 0$P 25 63;SET R3 TO 01$P 26 01$P 27 AF;RR R3,R3 JUST TO .$P 28 C3;LAD 80 TO R3$P 29 80$P 2A 73;R3+$P 2B F0;BZC TO THE END WHICH IS 90$P 2C 90$P 2D D3;STA R3 TO 80$P 2E 80$P 2F E0;JMP TO THE ENTRANCE OF THE CYCLE$P 30 0C;条件转移指令分支$P 40 63;SET R3 TO 80

温馨提示

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

评论

0/150

提交评论