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

上传人:b****6 文档编号:3407119 上传时间:2022-11-22 格式:DOCX 页数:14 大小:52.15KB
下载 相关 举报
基于复杂模型机两个8位二进制数乘法的实现.docx_第1页
第1页 / 共14页
基于复杂模型机两个8位二进制数乘法的实现.docx_第2页
第2页 / 共14页
基于复杂模型机两个8位二进制数乘法的实现.docx_第3页
第3页 / 共14页
基于复杂模型机两个8位二进制数乘法的实现.docx_第4页
第4页 / 共14页
基于复杂模型机两个8位二进制数乘法的实现.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

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

《基于复杂模型机两个8位二进制数乘法的实现.docx》由会员分享,可在线阅读,更多相关《基于复杂模型机两个8位二进制数乘法的实现.docx(14页珍藏版)》请在冰豆网上搜索。

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

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

评语:

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

成绩:

自评分:

实验报告

实验名称:

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

本人信息

班级:

学号:

姓名:

实验目的:

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

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

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

、实验内容:

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

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

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

三、项目要求及分析:

要求:

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

分析:

要求利用复杂模型机现有的指令系统以及硬件电路设计一段实现八位二进制数相乘的程序。

因为乘法在计算机中有多种算法实现,包括整数乘、小数乘、原码乘、补码乘等等,因为此次实验并不要求给出一个完整的实用乘法程序段,故实验程序只实现两个八位二进制整数无符号相乘运算。

采用算法如下:

采用算法如下:

乘数AA7A6A5A4A3A2A1A0

被乘数B

乘积C=B•AO+2(B•A1+2(B•A2+……2•B•A7))))))

其中Ai为0或者1,在机器中使用原码表示2*X是使X左移1位。

若不采用循环模式而是直接使用指令将该算法的乘积等式直接表示出来,需要A,B,RL(结果低位),RH

(结果高位)四个通用寄存器;而若使用循环模式,则需要除A、BRLR申卜的CX(控制循环次数以及高低位相与寄存器)和AD(取中间结果高低位)的辅助。

此次实验为了充分的接触指令系统,采用循环模式。

由于复杂模型机中只有R0、R1、R2R3四个通用寄存器,故一些原来计划使用的寄存器改为使用主存。

另外,因为低位结果相加可能进位,所以修改原微指令AD为带进位加法。

四、具体实现:

1.画出算法流程图

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

00000000

初始值

00000001

CXORAD->AD

00000011

11111111

另流程图中所用6个寄存器在实现中使用MEM弋替,CX,AD,A,B使用R2作RL,R3作RH左移1位等价右移7位。

2.根据算法实现,若需修改指令系统,画出修改后的微程序流程图

 

3.编写修改指令系统后的二进制代码表

二进制数微代码表

地址

十六进制表示

高五位

S3-S0

A字段

B字段

C字段

UA5-UA0

00

000001

00000

0000

000

000

000

000001

01

006D43

00000

0000

110

110

101

000011

03

107070

00010

0000

111

000

001

110000

04

002405

00000

0000

010

010

000

000101

05

04B201

00000

1001

011

001

000

000001

06

002407

00000

0000

010

010

000

000111

07

013201

00000

0010

011

001

000

000001

08

106009

00010

0000

110

000

000

001001

09

183001

00011

0000

011

000

000

000001

0A

106010

00010

0000

110

000

000

010000

0B

000001

00000

0000

000

000

000

000001

0C

103001

00010

0000

011

000

000

000001

0D

200601

00100

0000

000

011

000

000001

0E

005341

00000

0000

101

001

101

000001

0F

0000CB

00000

0000

000

000

011

001011

10

280401

00101

0000

000

010

000

000001

11

103001

00010

0000

011

000

000

000001

12

06B201

00000

1101

011

001

000

000001

13

002414

00000

0000

010

010

000

010100

14

05B201

00000

1011

011

001

000

000001

15

002416

00000

0000

010

010

000

010110

16

01B201

00000

0011

011

001

000

000001

17

002418

00000

0000

010

010

000

011000

18

043201

00000

1000

011

001

000

000001

1B

005341

00000

0000

101

001

101

000001

1C

10101D

00010

0000

001

000

000

011101

1D

10608C

00010

0000

110

000

010

001100

1E

10601F

00010

0000

110

000

000

011111

1F

101020

00010

0000

001

000

000

100000

20

10608C

00010

0000

110

000

010

001100

28

101029

00010

0000

001

000

000

101001

29

00282A

00000

0000

010

100

000

101010

2A

04E22B

00000

1001

110

001

000

101011

2B

04928C

00000

1001

001

001

010

001100

2C

10102D

00010

0000

001

000

000

101101

2D

002C2E

00000

0000

010

110

000

101110

2E

04E22F

00000

1001

110

001

000

101111

2F

04928C

00000

1001

001

001

010

001100

30

001604

00000

0000

001

011

000

000100

31

001606

00000

0000

001

011

000

000110

32

006D48

00000

0000

110

110

101

001000

33

006D4A

00000

0000

110

110

101

001010

34

003401

00000

0000

011

010

000

000001

35

000035

00000

0000

000

000

000

110101

36

006D51

00000

0000

110

110

101

010001

37

001612

00000

0000

001

011

000

010010

38

001613

00000

0000

001

011

000

010011

39

001615

00000

0000

001

011

000

010101

3A

001617

00000

0000

001

011

000

010111

3B

000001

00000

0000

000

000

000

000001

3C

006D5C

00000

0000

110

110

101

011100

3D

006D5E

00000

0000

110

110

101

011110

3E

006D68

00000

0000

110

110

101

101000

3F

006D6C

00000

0000

110

110

101

101100

地址

十六进制表示

高五位

S3-S0

A字段

B字段

C字段

UA5-UA0

4.编写微程序两个8位二进制数的乘法运算程序如下:

;机器指令

$P0020;INPUTTOR0

$P0100

$P0222;INPUTTOR2

$P0300

$P0461;SETR1TO00

$P0500

$P0663;SETR3TO00

$P0700

$P0863;SETR3TOF8

$P09F8

$P0AD3;STORER3TO80ASATAG

$P0B80

;循环主体

$P0C63;SETR3TO01

$P0D01

$P0E1B;ANDR2,R3

$P0FF0;BZCTO12

$P1012

$P1101;ADDR0,R1

$P1263;SETR3TO01

$P1301

$P14AD;RRR3,R1

$P15AE;RRR3,R2

$P1663;SETR3TO7F

$P177F

$P181E;ANDR3,R2

$P1963;SETR3TO80

$P1A80

$P1B17;ANDR1,R3

$P1C9E;ORR3,R2

$P1D63;SETR3TO01

$P1E01

$P1FAF;RRR3,R3JUSTTOMAKEFZNOTEQUALONETHENBZCDEPENDSONFC

$P20F0;BZCTO40

$P2140

$P2263;SETR3TO7F

$P237F

$P241D;ANDR3,R1TOMAKETHEHBOFR1AS0

$P2563;SETR3TO01

$P2601

$P27AF;RRR3,R3JUSTTO...

$P28C3;LAD80TOR3

$P2980

$P2A73;R3++

$P2BF0;BZCTOTHEENDWHICHIS90

$P2C90

$P2DD3;STAR3TO80

$P2E80

$P2FE0;JMPTOTHEENTRANCEOFTHECYCLE$P300C

;条件转移指令分支

$P4063;SETR3TO80

$P4180

$P429D;ORR3,R1TOMAKETHEHBOFR1AS1

$P43E0;JMPTO25

$P4425

;程序结尾

$P9034;OUTPUTR1

$P9140

$P9238;OUTPUTR2

$P9340

$P9450;STOP

;微指令

;//**StartOfMicroControllerData**//

$M00000001;NOP

$M01006D43;PC->AR,PC加1

$M03107070;MEM->IR,P<1>

$M04002405$M0504B201$M06002407$M07013201$M08106009$M09183001$M0A106010$M0B000001$M0C103001$M0D200601$M0E005341$M0F0000CB$M10280401$M11103001$M1206B201$M13002414$M1405B201$M15002416$M1601B201$M17002418$M18043201$M1B005341$M1C10101D$M1D10608C$M1E10601F$M1F101020$M2010608C$M28101029$M2900282A$M2A04E22B$M2B04928C$M2C10102D$M2D002C2E$M2E04E22F$M2F04928C

;RS->B

;A加B->RD

;RS->B

;A与B->RD

;MEM->AR

;IO->RD

;MEM->AR

;NOP

;MEM->RD

;RD->MEM

;A->PC

;NOP,P<3>

;RS->IO

;MEM->RD

;A加1->RD

;RS->B

;A减B->RD

;RS->B

;A或B->RD

;RS->B

;A右环移->RD

;A->PC

;MEM->A

;MEM->AR,P<2>

;MEM->AR

;MEM->A

;MEM->AR,P<2>

;MEM->A

;RI->B

;A加B->AR

;A加B->A,P<2>

;MEM->A

;PC->B

;A加B->AR

;A加B->A,P<2>

$M30001604

;RD->A

$M31001606

;RD->A

$M32006D48

;PC->AR,PC

加1

$M33006D4A

;PC->AR,PC

加1

$M34003401

;RS->RD

$M35000035

;NOP

$M36006D51

;PC->AR,PC

加1

$M37001612

;RD->A

$M38001613

;RD->A

$M39001615

;RD->A

$M3A001617

;RD->A

$M3B000001

;NOP

$M3C006D5C

;PC->AR,PC

加1

$M3D006D5E

;PC->AR,PC

加1

$M3E006D68

;PC->AR,PC

加1

$M3F006D6C

;PC->AR,PC

加1

;//**EndOfMicroControllerData**//

5.编写机器指令验证

;机器指令

$P0020;INPUTTOR0

$P0100

$P0222;INPUTTOR2

$P0300

$P0461;SETR1TO00

$P0500

$P0663;SETR3TO00

$P0700

$P0863;SETR3TOF8

$P09F8

$P0AD3;STORER3TO80ASATAG

$P0B80

;循环主体

$P0C63;SETR3TO01

$P0D01

$P0E1B;ANDR2,R3

$P0FF0;BZCTO12

$P1012

$P1101;ADDR0,R1

$P1263;SETR3TO01

$P1301

$P14AD;RRR3,R1

$P15AE;RRR3,R2

$P1663;SETR3TO7F

$P177F

$P181E;ANDR3,R2

$P1963;SETR3TO80

$P1A80

$P1B17;ANDR1,R3

$P1C9E;ORR3,R2

$P1D63;SETR3TO01

$P1E01

$P1FAF;RRR3,R3JUSTTOMAKEFZNOTEQUALONETHENBZCDEPENDSONFC

$P20F0;BZCTO40

$P2140

$P2263;SETR3TO7F

$P237F

$P241D;ANDR3,R1TOMAKETHEHBOFR1AS0

$P2563;SETR3TO01

$P2601

$P27AF;RRR3,R3JUSTTO...

$P28C3;LAD80TOR3

$P2980

$P2A73;R3++

$P2BF0;BZCTOTHEENDWHICHIS90

$P2C90

$P2DD3;STAR3TO80

$P2E80

$P2FE0;JMPTOTHEENTRANCEOFTHECYCLE

$P300C

;条件转移指令分支

$P4063;SETR3TO80

$P4180

$P429D;ORR3,R1TOMAKETHEHBOFR1AS1

$P43E0;JMPTO25

$P4425

;程序结尾

$P9034;OUTPUTR1

$P9140

$P9238;OUTPUTR2

$P9340

$P9450;STOP

联机装入调试

五、调试运行结果:

输入FD*FE输出FBO&

六、所遇问题及解决方法:

实验时不知道如何利用已有设备利用加法进行两个8位数乘法运算,通过上网查询知道了方法,并以此设计复杂模型机;

然后是开始时对机器程序不太了解,对微指令与机器指令之间的运行不太明白,后来在同组成员和其他同学的帮助与讨论下明白了它们之间的联系和运行顺序。

七、实验总结:

1、经过实验,深层次的了解了微指令系统以及它存在的意义;

2、体会到了机器语言的速度之快以及变成之繁琐,贯通了从电路到桌面应用这一系列体系知识;

3、复杂模型是对前面简单模型的升华,使我们更深入了解了机器程序的执行过程;

4、模型机的设计是一个新的知识,在编写时遇到了很多问题与难处,因此我们在编写时需要不断查阅课本,加深理解。

八、心得体会:

1、复杂模型机的实现比较简单,就是微程序的编写比较繁琐;

2、以后再遇到这种繁琐的程序,先仔细构思,画出流程图再编写,就能容易出错;

3、复杂模型机的调试是一个极其繁琐的过程,我们编写是要细心认真,调试出现问题时要耐心检查;

4、通过本次实验收获丰富,在做这次实验之前,通过深入的预习,理解了实验原理、明确了实验的目的,按部就班地连线,逐步完成了实验的要求。

在实验过程中,我认真进行实验操作和思考实验有关的内容,把自己不太明白的问题通过实验理解清楚。

通过这次实验我更加深刻的理解了计算机的工作原理,懂得了复杂模型机设计与实现的

基本操作,加深了对书本知识的认识。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1