- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验三、多字节、多进制加减运算实验
实验三、多字节、多进制加减运算实验
一、实验目的
学习多字节压缩BCD码加减法运算的程序设计
学习单字节有符号数加减运算的程序设计
二、实验要求
1.编写通用4字节压缩BCD码的加、减法运算程序
2.编写通用单字节有符号二进制数加、减法运算程序
三、实验原理
对于简单的8位加减可以直接调用指令就可以了。例如加法可以使用指令ADD以及带进位加ADDC,但单字节加减法只能在256之内进行运算;在实际应用中经常需要进行多字节运算,从而处理更大的数据。该实验介绍单片机BCD码多字节加、减运算通用程序的设计。
1.多字节无符号压缩BCD码加法运算
假设多字节无符号被加数的最低字节的地址为R0,加数的最低字节地址为R1,字节数共为len;计算结果的地址于被加数相同。
◆ 入口参数:
R0:被加数地址指针;
R1:加数地址指针;
len:字节数。
◆ 出口参数:
@R0:计算结果;
rLen:计算结果字节数。
◆ 使用资源:ACC,R0、R1,内部RAM单元len、rlen及存放被加数、加数、计算结果的内存单元。
示例程序如下:
ADDl: PUSH PSW ;保护标志寄存器内容
CLR C ;进位位清0
MOV rlen,#00H ;和的字节数先清0
ADD: MOV A,@R0 ;取被加数
ADD A,@R1 ;求和
DA A ;十进制调整
MOV @R0,A ;保存
INC R0 ;地址增1
INC R1
INC rlen ;字节数增1
DJNZ len,ADD ;所有字节未加完继续,否则向下执行
JNC ADD20 ;和的最高字节无进位转ADD20
MOV @R0,#01H ;和的最高字节地址内容为01H
INC rlen
ADD20: POP PSW
RET
END
多字节加法运算一般是按从低字节到高字节的顺序进行的,所以必须考虑低字节向高字节的进位情况,被加数和加数的压缩BCD码,最大不超过99,而99+99+1(进位)=199,此时不需要使用ADDC指令,但当两字节当最低两字节相加后,必须使用“DA A”进行十进制调整,调整后产生进位。而最高两字节相加后应考虑是否有进位。若有进位,应向和的最高位字节地址写入01H,这时和数将比加数或被加数多出一个字节。
2.单字节带符号数加法运算
编程范例:
两个8位二进制带符号数加法,被加数和加数分别存于BLK和BLK+1单元,和超过8位要占两个单元,设为SUM和SUM+1单元。
解:两个带符号数的加法是作为补码加法处理的。由于和超过8位,因此,和就是一个16位带符号数,符号位在16位数的最高位。为此,直接相加进位是不够的,还要做一些处理。例如-65和-65相加,若直接求和产生溢出,即使扩展到16位,结果也不正确。如:
-65 1 0 1 1 1 1 1 lB
+) -65 1 0 1 1 1 1 1 1B
0 0 0 0 0 0 0 1 0 1 1 1 1 1 1 OB
现在这个16位数的最高位为0,两个负数相加变为正数,显然是错误的。
处理的方法是先将8位带符号数扩展成16位带符号数,然后再相加。若是8位正数,则高8位扩展为00H;若是8位负数,则高8位扩展为0FFH。这样处理后,再按双字节相加,就可以得到正确的结果。如上例,由于是负数,高8位应是全1,然后再加:
-65 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1B
+) -65 1 1 1 1 1 1 1 1 1 0 1 l 1 1 1 1B
1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0B,
最高位的进位丢失不计。换算成真值为—130,结果正确。
在编程时,判别加数和被加数的符号位,再决定是否要将高8位改为0FFH。
程序如下:
BLK DATA 30H
SUM DATA 40H
MOV R0,#BLK ;R0指向被加数
MOV R1,#SUM ;R1指向和
MOV R2,#0 ;高8位先设为
您可能关注的文档
最近下载
- 2024年秋新人教PEP版英语三年级上册全册教学课件(新版教材).pptx
- 围手术期肺功能的保护.ppt
- 智慧电厂数字化转型整体解决方案 [1460页Word].doc VIP
- 计算机维修工三级(高级)理论考试题库(单选题汇总).docx VIP
- 浙江省湖州市2023-2024学年八年级下学期期末考试英语试题(含答案及听力原文,无音频).pdf VIP
- 高血压患者服药依从性现状及护理干预.doc
- 中国各省市矢量地图素材课件课件.ppt
- 专业基础知识(给排水)考试试卷(共四套)含答案解析.pdf
- 2024年保健按摩师(高级)职业技能鉴定考试题库(含答案).docx
- 中国传统文化概论(第三版) 课件 第五章 中国传统陵寝.pptx
文档评论(0)