- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验2—BCD码相乘
实验2—BCD码相乘
一、实验目的
掌握码制之间的转换方法及乘法运算
二、实验内容
实现BCD码的乘法,要求被乘数和乘数(0~99)以压缩BCD码形式存放,各占1个字节内存单元。乘积存放在另外2个字节内存单元中。
三、流程图
准备开始
DATA1、DATA2由压缩BCD码转为16进制码
十六进制码相乘得到十六进制结果果
将十六进制结果转为十进制结果暂存于一字符串
将暂存的结果复制到待输出字符串
调用DOS功能输出运算结果
返回DOS,结束程序
参考程序
DATAS SEGMENT
DATA1 DB 10H
DATA2 DB 75H
DECI DB 0AH
PRODUCT DW ?
COUNT DB 0
STORE DB 4 DUP(0) ;因不明确乘积为几位数,故结果暂存于此
DIS DB RESULT:$$$$$
DATAS ENDS
CODES SEGMENT
ASSUME DS:DATAS,CS:CODES
MULTIPLY:
MOV AX,DATAS
MOV DS,AX
DATA1_BCD_H:
MOV CH,DATA1
AND CH,0FH ;CH保存DATA1个位数
MOV CL,4
SHR DATA1,CL ;右移得DATA1十位数
MOV AL,DATA1
MUL DECI
ADD AL,CH
MOV DL,AL ;转换完毕,放入DL暂存
DATA2_BCD_H:
MOV DH,DATA2
AND DH,0FH ;DH保存DATA2个位数
SHR DATA2,CL ;右移得DATA2十位数
MOV AL,DATA2
MUL DECI
ADD AL,DH ;转换完毕,放入AL暂存,等待相乘
MUL DL
MOV PRODUCT,AX
MOV SI,0
MOV CX,4
TRANSFER: ;将十六进制结果转换为十进制结果存入STORE
DIV DECI
CMP AL,0
JZ QUIT ;各位数字均已找出,退出循环
ADD STORE[SI],AH
MOV AH,0
INC SI
LOOP TRANSFER
QUIT:
ADD STORE[SI],AH ;最高位复制进待输出字符串
INC SI
MOV CX,SI
MOV DI,0
COPY:
MOV AL,STORE[SI-1]
MOV DIS[7+DI],AL
INC DI
DEC SI
LOOP COPY ;运算结果复制到待输出字符串
DISPLAY:
LEA DX,DIS
MOV AH,09H
INT 21H
MOV AH,4CH
INT 21H
CODES ENDS
END MULTIPLY
五、DEBUG截图:
进制转换前,DATA1、DATA2中内容如下:
进制转换后DATA1的转换结果存在DL中,为0A,而DATA2的转换结果存在AL中,为4B:
相乘后乘积存在PRODUCT中,如下,为02EEH。
转换回十进制,以ASCII码形式存放在STORE中,结果??下:
结果复制到待输出字符串DIS后,如下所示,翻译出来是’RESULT:750$’。
程序运行结果:
符合预期。
您可能关注的文档
最近下载
- 第一章 2.2 水量平衡.ppt
- 《GB/T 19326-2022锻制支管座》.pdf
- 2022年11月陕西省从优秀村社区干部中考试录用200名乡镇街道机关公务员上岸冲刺卷I含答案详解版(3套).docx VIP
- 2020年银行业从业人员职业操守和行为准则.pdf VIP
- 转预备党员思想汇报【银行】.pdf VIP
- 【新教材】人教版(2024)七年级上册英语Unit 4 My Favourite Subject教案.docx
- 米厂恒温仓库工程设计方案.docx
- 2024年党校入党积极分子培训考试必考重点知识汇编(共160题).doc VIP
- 《世界经典神话与传说故事》 测试题及答案.pdf
- 智能制造设备安装与调试职业技能等级标准(2021年).pdf
文档评论(0)