COP实现补码两位乘Word格式文档下载.docx
- 文档编号:18909089
- 上传时间:2023-01-02
- 格式:DOCX
- 页数:13
- 大小:217.92KB
COP实现补码两位乘Word格式文档下载.docx
《COP实现补码两位乘Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《COP实现补码两位乘Word格式文档下载.docx(13页珍藏版)》请在冰豆网上搜索。
部分积+[X]补,右移两位
011
-1
部分积+[-X]补,右移两位
100
101
110
2
部分积+2[X]补,右移两位
111
部分积+0,右移两位
1.2设计思路
(1)被乘数X,乘数Y均以补码形式参加运算,乘法的每一步对乘数的两位进行,即右移两位。
(2)乘数[Y]在计算时采用两位符号位,初始附加位添一个0。
(3)被乘数[X]在计算时采用三位符号位。
(4)部分积初始为0,计算过程中采用三位符号位。
(5)每一步计算,按照乘数的最低三位的值查找操作规则表1,根据上一步的部分积和规则表的操作,计算本步的部分积。
(6)每步操作后,将部分积和乘数右移两位,乘数右移后,原来的最低两位被移除出舍弃,其余各位位权依次下降。
重复(4),但最后一步操作不右移。
1.3设计环境
利用伟福COP2000型计算机组成原理实验仪软件和计算机,在COP2000实验仪软件上编程实现补码两位乘。
伟福COP2000实验仪软件的指令集分为如下大类:
算术运算指令、逻辑运算指令、移位指令、数据传输指令、跳转指令、中断返回指令、输入输出指令。
本程序所用到的相应的指令集如下:
(1)算术逻辑运算指令
ADDA,R?
将寄存器R?
的值加入到累加器A中
ADDA,#II立即数#II加入到累加器A中
SUBA,#II从累加器中减去立即数后加入到累加器A中
ANDA,R?
累加器A与寄存器R?
的值
ORA,R?
累加器A或寄存器R?
(2)数据传送指令
MOVA,R?
将寄存器R?
的值送到累加器A中
MOVA,MM将存储器MM地址中的值送到累加器A中
MOVMM,A将累加器A中的值送到存储器MM地址中
MOVR?
A将累加器A中的值送到寄存器A中
#II将立即数II送到寄存器R?
中
RRA累加器右移指令
RLA累加器左移指令
(3)跳转指令
JCMM若进位标志置1,跳转到MM地址
JZMM若零标志位置1,跳转到MM地址
JMPMM跳转到MM
如下为COP2000计算机组成原理实验软件截图:
图2COP2000运行环境
第2章详细设计方案
2.1算法与程序的设计与实现
本课设采用伟福COP2000实验仪软件和计算机实现补码两位乘功能,利用伟福COP2000的指令集编程实现。
算法具体描述:
(1)计算复杂性包括:
+[X]补,+2[X]补,+[-X]补,+2[-X]补;
(2)进行初始化,并且设置计数单元与建立特殊表。
因为每次计算需要进行三次移位,所以用MOVA,#03H与MOV9AH,A来将循环次数存入内存单元。
然后再进行初始化操作,将存储部分积的R1置零,再将用来存储特殊表的90H,97H内存单元置零。
接下来再通过输入的被乘数判断其正负,如果被乘数是负,在前面两位加上1,如果是整数则无需操作,直接构造特殊表。
(3)输入乘数后,将乘数移至最前端,执行LOOP2,首先设置移位次数,取出成熟后,判断乘数的后两位及附加位的值,根据所查的值访问特殊表,进而确定加数,之后将部分积与加数相加得到新的部分积,得到结果后,判断总循环是否结束,之后进行判断移位的操作,部分积的最高位如果是1,移位后仍然置1。
部分积最低位如果是1,乘数右移之后最高位置1.
(4)根据乘数后两位及附加位来确定R3,并通过R3间接访问特殊表。
将访问的数据作为加数与部分积相加,然后判断两次循环是否结束,如果两次运算循环结束,则结束运算,否则将部分积与乘数同时右移两位再根据有效位来通过R3访问特殊表。
相加移位运算结束后再将部分积与乘数同时右移一位,将数据位置有效,输出数据。
2.2流程图的设计与实现
本部分包含实现中主要部分的流程图
1.构造规则表:
图2.2.1构造规则表流程图
2.乘数处理操作:
图2.2.2乘数处理操作流程图
3.运算
否
是
图2.2.3运算流程图
4.输出
图2.2.4输出流程图
第3章程序调试与结果测试
3.1程序调试
调试过程中存在的问题:
(1)在输入以字母开头的十六进制数时,没有在字母前加上0,导致语法错误。
(2)在执行带进位右移操作是RRCA,因为之前没对指令集充分了解,导致用了错误的指令RRA。
(3)在对部分积移位操作时,如果最高位是1时,移位最高位仍然置1,当时考虑不够充分,没有置1,导致程序出错。
3.2程序测试及结果分析
结果展示:
输入:
2B23
输出:
1308
参考文献
[1]唐朔飞计算机组成原理(第2版).北京.高等教育出版社.2008
[2]白中英计算机组成原理(第4版).北京.科学出版社.2008
附录(源代码)
MOVA,#03H
MOV9AH,A
MOVA,#00H
MOVR1,A
MOV90H,A
MOV97H,A
LOOP:
IN
MOVR0,A
ANDA,#20H
JZM0
MOVA,R0
ORA,#0C0H
MOVR0,A
M0:
MOV91H,A
MOV92H,A
RLA
MOV93H,A
CPLA
ADDA,#01H
MOV95H,A
MOV96H,A
MOV94H,A
LOOP1:
MOVR2,A
LOOP2:
MOVA,#02H
MOV9BH,A
MOVA,R2
RRA
ANDA,#07H
ADDA,#90H
MOVR3,A
MOVA,R1
ADDA,@R3
MOVA,9AH
SUBA,#01H
JZLAST
MARK1:
ANDA,#80H
JZLOOP3
RRCA
JCLOOP4
ORA,#80H
MARK2:
MOVA,9BH
JZLOOP2
JMPMARK1
LOOP3:
JCLOOP5
JMPMARK2
LOOP4:
LOOP5:
LAST:
JCLOOP6
ANDA,#3FH
OUT
ANDA,#0F8H
JMPED
LOOP6:
ED:
END
课程设计总结:
课设本身的目的便是为了考察学生的个人学习和动手能力,本次课程设计对我来说是个很大的挑战,因为我个人认为我的计算机组成原理这门课程学的并不是很好,好在查阅了很多资料,也让我充分了解了补码两位乘的原理。
此次课程设计我也学到了很多基本理论,对我充分认识计算机的运算过程也有很大帮助。
同时,我对COP2000实验仪器及软件也有了充分的了解。
对我今后的实践也会有很大的帮助,同时也感谢老师课前的答疑,消除了我部分疑问。
通过本次课设,我认识到了只要努力去学,总能学到点东西。
但我个人认为本次课设还是不够完美,没有完全的符合课设的所有要求,只能在今后的学习中,更加努力,不断去完善,争取有更高的超越。
指导教师评语:
指导教师(签字):
年月日
课程设计成绩
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- COP 实现 补码 两位乘