计算机组成原理实验之基于复杂模型机两个8位二进制数乘法的实现

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

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

课后完成的题号与题数:

成绩:自评分:必填

实验报告

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

日期:

实验名称:

实现

班级:学号:姓名:

班级:学号:姓名:

一、实验目的:

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

2.掌握原码一位乘实现的控制流程和硬件配置

二、实验内容:

利用复杂模型机编写程序实现两个8位二进制的乘法运算

三、项目要求及分析:

本程序要求编写程序实现两个8位二进制的乘法运算并将结果输出。两数相乘,可视为加法和移位两种运算,因为在模型机中规定字长全部用来表示数据,数值全为正,故不需要考虑符号,因此在设计编写时需要考虑的问题有:

(1)乘数、被乘数以及每次加法移位运算后的临时数据存放位置;

(2)在做加法运算时,如何取出乘数的末位以确定临时数据与0相加或与被乘数相加;(3)加法运算时,若两数相加产生溢出,如何判断溢出;

(4)移位运算时,如何控制乘数与临时数据的右移位。

这里,需要考虑如何实现:

a).对于乘数,右移后将被乘数的末位移至乘数的高位;

b).对于临时数据,右移后若先前相加时产生溢出,则将被乘数高位补1,若无溢出,则高位补0;

(5)如何控制程序的结束。

对于问题(1),将临时数据存放在R0寄存器,乘数存放在R1寄存器,因为被乘数不一定每次都参与运算,因此存放在主存内,需要时调入寄存器R2中。

问题(2)中,将乘数与01相与结果再减1,若末位为0,则产生借位,FC=1,P<4>测试时直接进行下步的移位运算;若末位为1,则不产生借位,FC=0,P<4>测试时进行临时数据与被乘数相加,再进入下步的移位运算。

判断溢出的目的是为了在下步移位运算时确定临时数据的高位补1或是不0,因此问题(3)的判断方法可类似问题(2),将进位信息存入寄存器R2中后减1,再次存入R2。若进位为0,则产生借位,FC=1;若进位为1,则不产生借位,FC=0。

问题(4)先进行乘数的移位,将乘数与(FE)十六进制相与,从而将乘数末位变为0,再将临时数据与(01)十六进制相与,取出临时数据的末位,最后将两个相与的结果相或后右环移,就实现临时数据的末位移至乘数的高位的运算。进行临时数据的移位时,将临时数据与(FE)十六进制相与,从而将临时数据末位变为0,然后结果右环移,根据问题(3)溢出判断的结果选择与(80)十六进制或与(00)十六进制相或,就实现临时数据的移位。

问题(5)中,因为两个8位二进制数的乘法需要移位运算8次,故可设一个计数器,八次运算后结束程序。

四、具体实现:

1、画出算法流程图

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

红色为改动过的微程序代码

3.编写微程序

红色为改动过的微程序代码

$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 ; 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 063201 ; A-1->RD

$M 13 002414 ; RS->B

$M 14 05B201 ; A减B->RD $M 15 002416 ; RS->B

$M 16 01B201 ; A或B->RD $M 17 002418 ; RS->B

$M 18 02B201 ; 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 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

相关文档
最新文档