基于复杂模型机两个8位二进制数乘法的实现

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

评语: 课中检查完成的题号及题数:

成绩: 自评分:

实验报告

实验名称:基于复杂模型机两个8位二进制数乘法的实现日期:

本人信息

班级:学号:姓名:

一、实验目的:

1、综合运用所学计算机组成原理知识,设计并实现较为完整的计算机;

2、理解计算机运行的原理以及微指令架构;

3、掌握原码一位乘实现的控制流程和硬件配置。

二、实验内容:

1、根据实验指导书提供的复杂模型机电路图连接电路,并校验电路

2、装载示例程序并运行,分析理解所增加的微指令

3、根据复杂模型机现有条件设计两个8位二进制相乘的程序

三、项目要求及分析:

要求:利用上述模型机通过编写程序实现两个8位二进制数的乘法运算。

分析:

要求利用复杂模型机现有的指令系统以及硬件电路设计一段实现八位二进制数相乘的程序。因为乘法在计算机中有多种算法实现,包括整数乘、小数乘、原码乘、补码乘等等,因为此次实验并不要求给出一个完整的实用乘法程序段,故实验程序只实现两

个八位二进制整数无符号相乘运算。

采用算法如下:

采用算法如下:

乘数 A A7A6A5A4A3A2A1A0

被乘数B

乘积 C = B·A0 +2(B·A1+2(B·A2+ ……2·B·A7))))))其中Ai为0或者1,在机器中使用原码表示2*X是使X左移1位。若不采用循环模式而是直接使用指令将该算法的乘积等式直接表示出来,需要A,B,RL(结果低位),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 0001

0000 0010

……

1000 0000 程序结束

AD作为被乘数的高低位划分数据, 其中被乘数B中高位对应的AD的位置1,低位置0: 0000 0000 初始值

0000 0001 CX OR AD -> AD

0000 0011

……

1111 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 00 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 01 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 00101 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 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 000 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 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 110101

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 00 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

相关文档
最新文档