基于复杂模型机两个8位二进制数乘法的实现.docx
- 文档编号:11262105
- 上传时间:2023-05-30
- 格式:DOCX
- 页数:12
- 大小:205.61KB
基于复杂模型机两个8位二进制数乘法的实现.docx
《基于复杂模型机两个8位二进制数乘法的实现.docx》由会员分享,可在线阅读,更多相关《基于复杂模型机两个8位二进制数乘法的实现.docx(12页珍藏版)》请在冰点文库上搜索。
基于复杂模型机两个8位二进制数乘法的实现
基于复杂模型机两个8位二进制数乘法的实现
评语:
课中检查完成的题号及题数:
课后完成的题号与题数:
成绩:
自评分:
必填
实验报告
实验名称:
基于复杂模型机两个8位二进制数乘法的实现
日期:
2011.12.29
班级:
学号:
姓名:
班级:
学号:
姓名:
一、实验目的:
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.编写微程序
红色为改动过的微程序代码
$M00000001;NOP
$M01006D43;PC->AR,PC加1
$M03107070;MEM->IR,P<1>
$M04002405;RS->B
$M0504B201;A加B->RD
$M06002407;RS->B
$M07013201;A与B->RD
$M08106009;MEM->AR
$M09183001;IO->RD
$M0A106010;MEM->AR
$M0B000001;NOP
$M0C103001;MEM->RD
$M0D200601;RD->MEM
$M0E005341;A->PC
$M0F0000CB;NOP,P<3>
$M10280401;RS->IO
$M11103001;MEM->RD
$M12063201;A-1->RD
$M13002414;RS->B
$M1405B201;A减B->RD
$M15002416;RS->B
$M1601B201;A或B->RD
$M17002418;RS->B
$M1802B201;A循环右移->RD
$M1B005341;A->PC
$M1C10101D;MEM->A
$M1D10608C;MEM->AR,P<2>
$M1E10601F;MEM->AR
$M1F101020;MEM->A
$M2010608C;MEM->AR,P<2>
$M28101029;MEM->A
$M2900282A;RI->B
$M2A04E22B;A加B->AR
$M2B04928C;A加B->A,P<2>
$M2C10102D;MEM->A
$M2D002C2E;PC->B
$M2E04E22F;A加B->AR
$M2F04928C;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
4.编写机器指令验证
$P0020;START:
INR0,00H从IN单元读入被乘数
$P0100;
$P02D0;STA0060H,R0存入主存#60
$P0360;
$P0420;INR0,#00H从IN单元读入乘数
$P0500;
$P06D0;STA0061H,R0存入主存#61
$P0761;
$P0860;LDIR0,08H计数值08
$P0908;
$P0AD0;STA0062H,RO将计数值存入主存
$P0B62;
$P0C60;LDIR0,00H载入初始和00
$P0D00;
$P0EC1;LAD0061H,R1读乘数到R1
$P0F61;
$P10C2;LAD0060H,R2读乘数到R2
$P1160;
$P1263;LDIR3,01H载入校验数01
$P1301;
$P1417;ANDR3,R1取乘数的最低位
$P1573;DECR3R3自减1
$P16F0;BZC0021H最低位为0则跳转
$P1721;
$P1808;ADDR0,R2相加
$P19F0;BZC001FH溢出则跳转
$P1A1F;
$P1B62;LDIR201HR2作为溢出标志,不溢出为1
$P1C01;
$P1DE0;JMP0021
$P1E21;
$P1F62;LDIR200H溢出置0
$P2000;
$P2163;LDIR300H移位位数
$P2200;
$P23AD;RRR1,R3R1右移0位
$P24AC;RRR0,R3R0右移0位
$P25F0;BZC002CHR0移出的是1则跳转
$P262C;
$P2763;LDIR3,01111111B载入屏蔽字
$P287F;
$P291D;ANDR1,R3给R1最高位置0
$P2AE0;JMP00,2F
$P2B2F;
$P2C63;LDIR310000000B载入屏蔽字
$P2D80;
$P2E9D;ORR1,R3给R1最高位置1
$P2F72;DECR2R2自减1
$P30F0;BZC0037H18步有溢出则跳转
$P3137;
$P3263;LDIR3,01111111置入屏蔽字
$P337F;
$P341C;ANDR0,R3给R0高位置0
$P35E0;JMP00,3AH
$P363A;
$P3763;LDIR3,10000000置入屏蔽字
$P3880;
$P399C;ORR0,R3给R0高位置1
$P3AC2;LAD62H,R2取计数值
$P3B62;
$P3C72;DECR2计数值自减1
$P3DD2;STA62H,R2存计数值
$P3E62;
$P3F63;LDIR3,01H载入检验数
$P4001;
$P418E;SUBR2,R3判断是否循环8次
$P42F0;BZC0046H执行到第八次时00-01有借位,跳转
$P4346;
$P44E0;JMP0010H返回继续循环
$P4510;
$P46D1;STA64H,R1低位存入主存#64H
$P4764;
$P48D0;STA65H,R0高位存入主存#65H
$P4965;
$P4A34;OUT40H,R1显示低位
$P4B40;
$P4C30;OUT40H,R0显示高位
$P4D40;
$P4E50;HLT停机
联机装入调试
五、调试运行结果:
六、所遇问题及解决方法:
设计中的主要问题就是上述问题分析时遇到的问题,这些问题的解决花费了很长一段时间。
此外,在测试时,由于一些数据在运算过程中出现临时数据移位时使得临时数据全为0,或者乘数移位时出现全为0,此时FZ=1,P<4>测试时与FC=1一样进行同样处理,导致最终结果错误。
对于这个问题,在分析过程中发现,只需将溢出和临时数据移位时判断条件全部改为FC=1,然后将FZ的线拔掉就可以避免。
七、实验总结:
1.
模型机的设计是一个新的知识,在编写时遇到了很多问题与难处,因此我们在编写时不断查阅课本,加深理解。
2.
复杂模型机的调试是一个极其繁琐的过程,这就要求我们编写是要细心认真,调试出现问题时要耐心检查。
3.
模型机的设计加深了我们对计算机内部各组件工作原理的理解。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 复杂 模型 两个 二进制 乘法 实现