基于复杂模型机两个8位二进制数乘法的实现
更新时间:2023-03-10 13:17:01 阅读量: 教育文库 文档下载
- 复杂模型机设计推荐度:
- 相关推荐
计算机组成原理实验报告
评语: 课中检查完成的题号及题数: 成绩:
实验报告
实验名称: 班级: 班级:
一、实验目的: 1. 综合运用所学计算机组成原理知识,设计并完成较为完整的计算机 2. 掌握原码一位乘实现的控制流程和硬件配置
二、实验内容:
利用复杂模型机编写程序实现两个8位二进制的乘法运算
三、项目要求及分析:
本程序要求编写程序实现两个8位二进制的乘法运算并将结果输出。两数相乘,可视为加法和移位两种运算,因为在模型机中规定字长全部用来表示数据,数值全为正,故不需要考虑符号,因此在设计编写时需要考虑的问题有:
(1)乘数、被乘数以及每次加法移位运算后的临时数据存放位置;
(2)在做加法运算时,如何取出乘数的末位以确定临时数据与0相加或与被乘数相加; (3)加法运算时,若两数相加产生溢出,如何判断溢出; (4)移位运算时,如何控制乘数与临时数据的右移位。
这里,需要考虑如何实现:
a).对于乘数,右移后将被乘数的末位移至乘数的高位;
b).对于临时数据,右移后若先前相加时产生溢出,则将被乘数高位补1,若无溢出,则高位补0;
(5)如何控制程序的结束。 对于问题(1),将临时数据存放在R0寄存器,乘数存放在R1寄存器,因为被乘数不一定每次都参与运算,因此存放在主存内,需要时调入寄存器R2中。
1
自评分:
必填
课后完成的题号与题数:
基于复杂模型机两个8位二进制数乘法的
实现
学号: 学号:
日期: 2011.12.29
姓名: 姓名:
计算机组成原理实验报告
问题(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
计算机组成原理实验报告
开始输入 00 ~ 07: 载入被乘数与乘数,分 别 存入 主存的60、61位置 初始化 08-0B:置计数值为08H,存入主存 0C-0D:初始和00=>R0, 0E-0F: 乘数=>R1 判断乘数末位 10-11: 被乘数=>R2 12-15: 01AND[R1]再减1,判断乘数末位是否为0Y (乘数末位为0)16 ~ 17: FC==1 ?N(乘数末位为1)相加 18: [R0]+[R1]=>[R0]部分积与被乘数相加判断溢出 19-20 : 若FC==1,有溢出,00=>R2 否则 01=>R2 移位 21-23:[R0]部分积右移一位 24: [R1]乘数右移一位,FC标记移出的数修正[R1]最高位 25-2E:若FC==1移位前[R0]最低位为1, 80AND[R1]=>[R1],[R1]最高位置1, 否则 7FAND[R1]=>[R1],[R1]最高位置0 即将[R0]最低位移到[R1]最高位修正[R0]最高位 2F-39:[R2]自减1 若FC==1,[R2原为0],有溢出 80AND[R0]=>[R0],[R0]最高位置1, 否则 7FAND[R0]=>[R0],[R0]最高位置0判断循环次数 3A-43:计数值=>[R2],自减1,再存入主存N(循环不足8)44-45: FZ==1 ?Y (循环8次) 存数 46-49:低八位[R1]存入主存64单元 高八位[R0]存入主存65单元输出 4A-4D4E: 算法完成, 停机
2. 根据算法实现,若需修改指令系统,画出修改后的微程序流程图
3
计算机组成原理实验报告
红色为改动过的微程序代码
3.编写微程序
4
计算机组成原理实验报告
红色为改动过的微程序代码 $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 $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 063201 $M 13 002414 $M 14 05B201 $M 15 002416 $M 16 01B201 $M 17 002418 $M 18 02B201 $M 1B 005341 $M 1C 10101D $M 1D 10608C $M 1E 10601F $M 1F 101020 $M 20 10608C $M 28 101029 $M 29 00282A $M 2A 04E22B $M 2B 04928C $M 2C 10102D $M 2D 002C2E $M 2E 04E22F $M 2F 04928C $M 30 001604 $M 31 001606 $M 32 006D48 $M 33 006D4A $M 34 003401 $M 35 000035 ; 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> ; RD->A ; RD->A
; PC->AR, PC加1 ; PC->AR, PC加1 ; RS->RD ; NOP
5
计算机组成原理实验报告
$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 000001 ; NOP
$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 20 ; START: IN R0,00H 从IN单元读入被乘数 $P 01 00 ;
$P 02 D0 ; STA 00 60H,R0 存入主存#60 $P 03 60 ;
$P 04 20 ; IN R0,#00H 从IN单元读入乘数 $P 05 00 ;
$P 06 D0 ; STA 00 61H,R0 存入主存#61 $P 07 61 ;
$P 08 60 ; LDI R0,08H 计数值08 $P 09 08 ;
$P 0A D0 ;STA 00 62H,RO 将计数值存入主存 $P 0B 62 ;
$P 0C 60 ;LDI R0,00H 载入初始和00 $P 0D 00 ;
$P 0E C1 ;LAD 00 61H,R1 读乘数到R1 $P 0F 61 ;
$P 10 C2 ;LAD 00 60H,R2 读乘数到R2 $P 11 60 ;
$P 12 63 ;LDI R3,01H 载入校验数01 $P 13 01 ;
$P 14 17 ;AND R3,R1 取乘数的最低位 $P 15 73 ;DEC R3 R3自减1
$P 16 F0 ;BZC 00 21H 最低位为0则跳转 $P 17 21 ;
$P 18 08 ;ADD R0,R2 相加
$P 19 F0 ;BZC 00 1FH 溢出则跳转 $P 1A 1F ;
$P 1B 62 ;LDI R2 01H R2作为溢出标志,不溢出为1 $P 1C 01 ;
$P 1D E0 ;JMP 00 21 $P 1E 21 ;
$P 1F 62 ;LDI R2 00H 溢出置0 $P 20 00 ;
6
计算机组成原理实验报告
$P 21 63 ;LDI R3 00H 移位位数 $P 22 00 ;
$P 23 AD ;RR R1,R3 R1右移0位 $P 24 AC ;RR R0,R3 R0右移0位
$P 25 F0 ;BZC 00 2CH R0移出的是1则跳转 $P 26 2C ;
$P 27 63 ;LDI R3,01111111B 载入屏蔽字 $P 28 7F ;
$P 29 1D ;AND R1,R3 给R1最高位置0 $P 2A E0 $P 2B 2F $P 2C 63 $P 2D 80 $P 2E 9D $P 2F 72 $P 30 F0 $P 31 37 $P 32 63 $P 33 7F $P 34 1C $P 35 E0 $P 36 3A $P 37 63 $P 38 80 $P 39 9C $P 3A C2 $P 3B 62 $P 3C 72 $P 3D D2 $P 3E 62 $P 3F 63 $P 40 01 $P 41 8E $P 42 F0 $P 43 46 $P 44 E0 $P 45 10 $P 46 D1 $P 47 64 $P 48 D0 $P 49 65 $P 4A 34 $P 4B 40 $P 4C 30 $P 4D 40 ;JMP 00,2F ;
;LDI R3 10000000B ;
;OR R1,R3 ;DEC R2 ;BZC 00 37H ;
;LDI R3,01111111 ;
;AND R0,R3 ;JMP 00,3AH ;
;LDI R3,10000000 ;
;OR R0,R3 ;LAD 62H,R2 ;
;DEC R2 ;STA 62H,R2 ;
;LDI R3,01H ;
;SUB R2,R3 ;BZC 00 46H ;
;JMP 00 10H ;
;STA 64H,R1 ;
;STA 65H,R0 ;
;OUT 40H,R1 ;
;OUT 40H,R0 ;
载入屏蔽字 给R1最高位置1 R2自减1
18步有溢出则跳转 置入屏蔽字 给R0高位置0 置入屏蔽字 给R0高位置1 取计数值 计数值自减1 存计数值 载入检验数 判断是否循环8次
执行到第八次时00-01有借位,跳转 返回继续循环 低位存入主存#64H 高位存入主存#65H 显示低位 显示高位 7
计算机组成原理实验报告
$P 4E 50 ;HLT 停机 联机装入调试
五、调试运行结果:
03H?03H?0009H
FFH?FFH?FE01H
8
计算机组成原理实验报告
六、所遇问题及解决方法:
设计中的主要问题就是上述问题分析时遇到的问题,这些问题的解决花费了很长一段时间。此外,在测试时,由于一些数据在运算过程中出现临时数据移位时使得临时数据全为0,或者乘数移位时出现全为0,此时FZ=1,P<4>测试时与FC=1一样进行同样处理,导致最终结果错误。对于这个问题,在分析过程中发现,只需将溢出和临时数据移位时判断条件全部改为FC=1,然后将FZ的线拔掉就可以避免。
七、实验总结:
1. 模型机的设计是一个新的知识,在编写时遇到了很多问题与难处,因此我们
在编写时不断查阅课本,加深理解。
2. 复杂模型机的调试是一个极其繁琐的过程,这就要求我们编写是要细心认
真,调试出现问题时要耐心检查。
3. 模型机的设计加深了我们对计算机内部各组件工作原理的理解。
9
正在阅读:
基于复杂模型机两个8位二进制数乘法的实现03-10
进程管理练习题11-06
最新2014年湘教版三年级上册音乐教案修改版(1)04-20
京沙道快速通道与北三环互通立交桥总体保通路方案 - 图文03-29
滨州学院网络教育怎么样03-30
2013年全国中考数学(100套)选择填空解答压轴题分类解析汇编 专04-11
南昌大学,matlab实验报告06-06
学做披萨作文500字06-23
浅谈如何提高小学语文阅读教学的实效性11-17
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 乘法
- 二进制
- 模型
- 复杂
- 基于
- 两个
- 实现
- 国家公务员考试行测高分训练数量关系第二练
- 安全生产标准化法规060.《化工企业厂区安全作业规程》2000
- 华侨大学 - 生物信息学 - 实验报告 2
- 国旗队解说词
- 晚会主持人串词
- “被遗忘”的黑板板书
- 生物传感器的原理和研究现状及应用 - 图文
- 网络工程实习报告
- 9~12岁儿童受众分析
- 百草园 第二课时
- 信托实务专题之(四):应对信托计划兑付危机的新途径--浅析实现担保物权特别程序
- 杨修之死的优秀教案
- 体育大课间活动安排表
- PWM控制的直流电动机调速系统的设计 - 毕业设计
- hypermesh初学者常见问题汇总
- 2015社会保障学模拟试卷及答案
- JNI学习积累之一 - - 常用函数大全
- 预备党员培养考察登记表中被批准为中共预备党员时的主要优缺点
- 第5 - 6章计算练习题
- 形势与政策论文