组成原理实验报告-基于复杂模型机两个8位二进制数乘法的实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机组成原理实验报告
评语:课中检查完成的题号及题数:
课后完成的题号与题数:
成绩: 指导教师:
实验报告
一、实验目的:
1. 综合应用所学的计算机组成原理知识,设计并实现较为完整的计算机;
2. 深入了解指令系统并会设计简单的指令;
3. 学会编写机器程序。
1. 按照书上给出的接线图和机器程序验证其正确性;
2. 了解该机器程序的执行过程和原理;
3. 通过编写程序实现两个8位二进制乘法运算。
三、项目要求及分析:
项目要求编程实现两个8位二进制数乘法,故可沿袭前面验证试验的接线。
8位二 进制数乘法运算结果为16位,而寄存器是8位的,所以应分为高八位和低八位。
我们 组采用的是比较普遍的运算方法,即判断最低位为1或0,若为0,部分积不变;若为1, 则部分积加上乘数左移了 n 次的结果得到新的部分积。
(n 为被乘数当前1所在的位数)
四、具体实现:
1.画出算法流程图
实验名称: 基于复杂模型机两个8位二进制数乘法的
实现 日期: 2011/1/10
班级:
学号: 姓名:
、实验内容:
;NOP ;PC->AR, PC 力卩 1 ;MEM->IR, P<1> ;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 位(低3位)->RD
2.根据算法实现,若需修改指令系统,画出修改后的微程序流程图 实验修改了两条指令,其他与指导书上一致。
修改的指令如下: 3 .编写微程序
$M 00 000001
$M 01 006D43
$M 03 107070
$M 04 002405
$M 05 04B201
$M 06 002407
$M 07 013201
$M 08 106009
$M 09 183001
$M 0A 106010
$M 0B 000001
$M 0C 103001
$M 0D 200601
$M 0E 005341
$M 0F 0000CB
$M 10 280401
$M 11 103001
$M 12 06B201
$M 13 002414
$M 14 033201
$M 15 002416 ; RS->B
$M 16 01B201 ; A 或B->RD $M 17 002418 ; RS->B
$M 18 02B201 ; A 右移B 位
->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 04E22B ; 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 000035 ; 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 001613 ; RD->A
$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 4.编写机器指令验证
$P 00 61 ; LDI R1,28H
$P 01 01 ;被乘数是83
$P 02 62 ; LDI R2,56H
$P 03 01 ; 乘数是33
$P 04 D1 ; R1->MEM A0H 单元
$P 05 A0 ;
$P 04 D2 ; R2->MEM B0H 单元
$P 05 B0 ;
$P 06 60 ; LDI R0,00H
$P 08 DO ; R0->MEM A1H 单元
$P 09 A1 ;
$P 0A D0 ; R0->MEM AOH 单元
$P OB A0 ;
$P 0C 63 ; LDI R3,FFH
$P 0D FF ;
$P 0E 1E ; AND R2,R3 R2 判断是不是 0
$P 0F F0 ; FZ=1 ,跳到 输出结果并停机
$P 10 1E ;
$P 11 63 ; LDI R3,01H
$P 12 00 ;
$P 13 AE ; SHR R2,R3 右移 0 位
$P 14 F0 ; FC 为 1,跳到 60
$P 15 60 ;
$P 16 D2 ; R2->MEM B0H 单元
$P 17 B0 ;
$P 18 63 ;
$P 19 00 ;
$P 1A 8D ; SHL R1,R3 左移 0 位
$P 1B 8C ; SHL R0,R3
左移 0 位
$P 1C E0 ;
$P 1D 80 ; ;输出
$P 1E C2 ; MEM->R2 A0H
$P 1F A0 ;
$P 20 C3 ; MEM->R3 A1H
$P 21 A1 ;
$P 22 50 ; 停机 $P 60 D2 ; R2->MEM B0H $P 61 B0 ;
$P 62 C2 ; MEM->R2 A0H $P 63 A0 ;
$P 64 C3 ; MEM->R3 A1H $P 65 A1 ;
$P 66 06 ; ADD R2,R1
$P 67 F0 ; FC 为 1,跳到 70
$P 68 74 ;
$P 69 03 ; ADD R3,R0
$P 6A D3 ; R3->MEM A1H 单元
单元部分积低位 单元部分积高位
单元
单元部分积低位
单元部分积高位
$P 6C D2 ; R2->MEM A0H 单元
$P 6E 63 ;
$P 6F 00 ;
$P 70 8D ; SHL R1,R3 左移0 位$P 71 8C ; SHL R0,R3 左移0 位$P 72 E0 ; JMP LOOP
$P 73 80 ;
$P 74 03 ; ADD R3,R0
$P 75 73 ; R3+1->R3
$P 76 D3 ; R3->MEM A1H 单元
$P 77 A1 ;
$P 78 D2 ; R2->MEM A0H 单元
$P 79 A0 ;
$P 7A 63 ;
$P 7B 00 ;
$P 7C 8D ; SHL R1,R3 左移0 位$P 7D 8C ; SHL R0,R3 左移0 位$P 7E E0 ; JMP LOOP
$P 7F 80 ;
$P 80 63 ; LDI R3,FFH
$P 81 FF ;
$P 82 C2 ; MEM->R2 B0H 单元
$P 83 B0 ;
$P 84 1E ; AND R2,R3 R2 判断是不是0 $P 85 F0 ; FZ=1 ,跳到停机
$P 86 1E ;
$P 87 63 ; LDI R3,01H
$P 88 00 ;
$P 89 AE ; RR R2,R3 右移一位
$P 8A F0 ; FC 为1,跳到60
$P 8B 60 ;
$P 8C D2 ; R2->MEM B0H 单元
$P 8D B0 ;
$P 8E 63 ;
$P 8F 00 ;
$P 90 8D ; SHL R1,R3 左移0 位$P 91 BC ; SHL R0,R3 左移0 位$P 92 E0 ;
$P 93 80 ;
联机装入调试
五、调试运行结果:
①、乘数是83H,被乘数是33H, 结果最后放在R3R2上是1AH 19H:
②、乘数FF,被乘数FE:
0 B* R1 8* R2 I R3
R0= | 貫I = ft2= P3 =
| T2 12T2
被乘数跟FFH进行与,判断是否为0:
1 ' l
S
R
3
w
|R
=
*~
T
f—
F 二
结果B
控制信号控制总线
P匚二
六、所遇问题及解决方法:
开始时对机器程序不太了解,对微指令与机器指令之间的运行不太明白,后来在同组成员和其他同学的帮助与讨论下明白了它们之间的联系和运行顺序。
另外就是程序的编写由于细节太多,导致小错不断,在各种纠结之后终于一一找出并修改了。
七、实验总结:
1. 复杂模型机的实现比较简单,就是微程序的编写比较繁琐;
2. 以后再遇到这种繁琐的程序,先仔细构思,画出流程图再编写,就不会那么
容易出错了。
3. 复杂模型是对前面简单模型的升华,使我们更深入了解了机器程序的执行过
程。