基于复杂模型机两个8位二进制数乘法的实现文档格式.docx
《基于复杂模型机两个8位二进制数乘法的实现文档格式.docx》由会员分享,可在线阅读,更多相关《基于复杂模型机两个8位二进制数乘法的实现文档格式.docx(14页珍藏版)》请在冰豆网上搜索。
四、具体实现:
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
000001
01
006D43
110
101
000011
03
107070
00010
111
001
110000
04
002405
010
000101
05
04B201
1001
011
06
002407
000111
07
013201
0010
08
106009
001001
09
183001
00011
0A
106010
010000
0B
0C
103001
0D
200601
00100
0E
005341
0F
0000CB
001011
10
280401
00101
11
12
06B201
1101
13
002414
010100
14
05B201
1011
15
002416
010110
16
01B201
0011
17
002418
011000
18
043201
1000
1B
1C
10101D
011101
1D
10608C
001100
1E
10601F
011111
1F
101020
100000
20
28
101029
101001
29
00282A
100
101010
2A
04E22B
101011
2B
04928C
2C
10102D
101101
2D
002C2E
101110
2E
04E22F
101111
2F
30
001604
000100
31
001606
000110
32
006D48
001000
33
006D4A
001010
34
003401
35
000035
110101
36
006D51
010001
37
001612
010010
38
001613
010011
39
001615
010101
3A
001617
010111
3B
3C
006D5C
011100
3D
006D5E
011110
3E
006D68
101000
3F
006D6C
101100
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;
$P1301
$P14AD;
RRR3,R1
$P15AE;
RRR3,R2
$P1663;
SETR3TO7F
$P177F
$P181E;
ANDR3,R2
$P1963;
SETR3TO80
$P1A80
$P1B17;
ANDR1,R3
$P1C9E;
ORR3,R2
$P1D63;
$P1E01
$P1FAF;
RRR3,R3JUSTTOMAKEFZNOTEQUALONETHENBZCDEPENDSONFC
$P20F0;
BZCTO40
$P2140
$P2263;
$P237F
$P241D;
ANDR3,R1TOMAKETHEHBOFR1AS0
$P2563;
$P2601
$P27AF;
RRR3,R3JUSTTO...
$P28C3;
LAD80TOR3
$P2980
$P2A73;
R3++
$P2BF0;
BZCTOTHEENDWHICHIS90
$P2C90
$P2DD3;
STAR3TO80
$P2E80
$P2FE0;
JMPTOTHEENTRANCEOFTHECYCLE$P300C
条件转移指令分支
$P4063;
$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
A与B->
AR
IO->
RD->
MEM
A->
PC
NOP,P<
3>
IO
A加1->
A减B->
A或B->
A右环移->
A
AR,P<
2>
RI->
A,P<
$M30001604
$M31001606
$M32006D48
AR,PC
加1
$M33006D4A
$M34003401
$M35000035
$M36006D51
$M37001612
$M38001613
$M39001615
$M3A001617
$M3B000001
$M3C006D5C
$M3D006D5E
$M3E006D68
$M3F006D6C
//**EndOfMicroControllerData**//
5.编写机器指令验证
JMPTOTHEENTRANCEOFTHECYCLE
$P300C
联机装入调试
五、调试运行结果:
输入FD*FE输出FBO&
六、所遇问题及解决方法:
实验时不知道如何利用已有设备利用加法进行两个8位数乘法运算,通过上网查询知道了方法,并以此设计复杂模型机;
然后是开始时对机器程序不太了解,对微指令与机器指令之间的运行不太明白,后来在同组成员和其他同学的帮助与讨论下明白了它们之间的联系和运行顺序。
七、实验总结:
1、经过实验,深层次的了解了微指令系统以及它存在的意义;
2、体会到了机器语言的速度之快以及变成之繁琐,贯通了从电路到桌面应用这一系列体系知识;
3、复杂模型是对前面简单模型的升华,使我们更深入了解了机器程序的执行过程;
4、模型机的设计是一个新的知识,在编写时遇到了很多问题与难处,因此我们在编写时需要不断查阅课本,加深理解。
八、心得体会:
1、复杂模型机的实现比较简单,就是微程序的编写比较繁琐;
2、以后再遇到这种繁琐的程序,先仔细构思,画出流程图再编写,就能容易出错;
3、复杂模型机的调试是一个极其繁琐的过程,我们编写是要细心认真,调试出现问题时要耐心检查;
4、通过本次实验收获丰富,在做这次实验之前,通过深入的预习,理解了实验原理、明确了实验的目的,按部就班地连线,逐步完成了实验的要求。
在实验过程中,我认真进行实验操作和思考实验有关的内容,把自己不太明白的问题通过实验理解清楚。
通过这次实验我更加深刻的理解了计算机的工作原理,懂得了复杂模型机设计与实现的
基本操作,加深了对书本知识的认识。