当前位置:首页 > 单片机 > 单片机
[导读]   在AT89S51指令系统中,有单字节的加、减、乘、除法指令,算术运算功能比较强。算术运算指令都是针对8位二进制无符号数的,如要进行带符号或多字节二进制数运算,需编写具体的运算程序,通过执行程序

  在AT89S51指令系统中,有单字节的加、减、乘、除法指令,算术运算功能比较强。算术运算指令都是针对8位二进制无符号数的,如要进行带符号或多字节二进制数运算,需编写具体的运算程序,通过执行程序实现。
  
  算术运算的结果将使PSW中的进位(Cy)、辅助进位(Ac)、溢出(OV)3种标志位置1或清0,但是增1和减1指令不影响这些标志。
  
  1.加法指令
  
  共有4条加法运算指令:
  
  这4条8位二进制数加法指令的一个加数总是来自累加器A,而另一个加数可由寄存器寻址、直接寻址、寄存器间接寻址和立即数寻址等不同的寻址方式得到。其相加的结果总是放在累加器A中。
  
  使用加法指令时,要注意累加器A中的运算结果对各个标志位的影响:
  
  (1)如果位7有进位,则进位标志Cy置l,否则Cy清0。
  
  (2)如果位3有进位,辅助进位标志Ac置1,否则Ac(Ac为PSW寄存器中的一位)清O。
  
  (3)如果位6有进位而位7没有进位,或者位7有进位而位6没有进位,则溢出标志位OV置l,否则OV清0。
  
  溢出标志位OV的状态,只有进行带符号数加法运算时才有意义。当两个带符号数相加时,OV=1,表示加法运算超出了累加器A所能表示的带符号数的有效范围(-128~+127),即产生了溢出,表示运算结果是错误的,否则运算是正确的,即无溢出产生。
  
  【例3-1】 (A)=53H,(RO)=FCH,执行指令
  
  运算式为
  
  结果为(A)=4FH,Cy=l,Ac=0,OV=O,P=1(A中l的位数为奇数)。
  
  注意:在上面的运算中,由于位6和位7同时有进位,所以标志位OV=O。
  
  【例3-2】 (A)=85H,(RO)=20H,(20H)=AFH,执行指令

运算式为

结果为(A)=34H,Cy=l,Ac=l,OV=1,P=1。
  
  注意:由于位7有进位,而位6无进位,所以标志位OV=1。
  
  2.带进位加法指令
  
  带进位加法运算的特点是进位标志位Cy参加运算,因此带进位的加法运算是三个数相加。带进位的加法指令共4条:
  
  这组带进位加法指令的功能是,指令中不同寻址方式所指定的加数、进位标志与累加器A内容相加,结果存在累加器A中。
  
  如果位7有进位,则进位标志Cy置1,否则Cy清0;如果位3有进位输出,则辅助进位标志Ac置l,否则Ac清0;如果位6有进位而位7没有进位,或者位7有进位而位6没有进位,则溢出标志OV置1,否则标志OV清O。
  
  【例3-3】 (A)=85H,(20H)=FFH,Cy=l,执行指令
  
  运算式为
  
  结果为(A)=85H,Cy=l,Ac=l,OV=0,P=l(A中1的位数为奇数)。
  
  3.增1指令
  
  共有5条增1指令:
  
  这组增1指令的功能是把指令中所指出的变量增1,且不影响程序状态字PSW中的任何标志。若变量原来为FFH,加1后将溢出为OOH(仅指前4条指令),标志也不会受到影响。第5条指令“INC DPTR”,是16位数增1指令。指令首先对低8位指针DPL的内容执行加1操j作,当产生溢出时,就对DPH的内容进行加1操作,并不影响标志Cy的状态。
  
  4.十进制调整指令
  
  十进制调整指令用于对BCD码十进制数加法运算结果的内容进行修正,指令格式为:
  
  这条指令的功能是对压缩的BCD码(一个字节存放2位BCD码)的加法结果进行十进制调整。两个BCD码按二进制相加之后,必须经本指令的调整才能得到正确的压缩BCD码的和数。
  
  (1)十进制调整问题
  
  对于十进制数(BCD码)的加法运算,只能借助于二进制加法指令。然而,二进制数的加法运算原则上并不能适用于十进制数的加法运算,有时会产生错误结果。
  
  例如:
  
  上述的BCD码运算中:
  
  (a)运算结果正确。
  
  (b)运算结果不正确,因为十进制数的BCD码中没有1111这个编码。
  
  (c)运算结果也不正确,正确结果应为17,而运算结果却是11。
  
  这种情况表明,二进制数加法指令不能完全适用于BCD码十进制数的加法运算,因此要对结果进行有条件的修正,这就是所谓的十进制调整问题。
  
  (2)出错原因和调整方法
  
  出错的原因在于BCD码是4位二进制编码,共有16个编码,但BCD码只用了其中的10个,剩下6个没用到。这6个没用到的编码(1010,1011,1100,1101,1110,1111)为无效编码。
  
  在BCD码的加法运算中,凡结果进入或者跳过无效编码区时,其结果就是错误的。因此1泣BCD码加法运算出错的情况有以下两种:
  
  ①相加结果大于9,说明已经进入无效编码区。
  
  ②相加结果有进位,说明已经跳过无效编码区。
  
  无论哪一种出错情况,都是因为6个无效编码造成的。因此,只要出现上述两种情况之一,就必须进行调整。调整的方法是把运算结果加6调整,即所谓的十进制调整修正。
  
  十进制调整的修正方法如下:
  
  ①累加器低4位大于9或辅助进位位Ac=l,则进行低4位加6修正。
  
  ②累加器高4位大于9或进位位Cy=l,则进行高4位加6修正。
  
  ③累加器高4位为9,低4位大于9,则高4位和低4位分别加6修正。
  
  上述十进制调整修正,是通过执行指令“DA A”自动实现的。
  
  【例3-4】 (A)=56H,(R5)=67H,把它们看作两个压缩的BCD数,进行BCD数加法。
  
  执行指令:
  
  由于高4位和低4位分别大于9,所以“DA A”指令要分别加6,来对结果进行修正。
  
  结果为(A)=23H,Cy=l。
  
  由上可见,56+67=123,结果是正确的。
  
  5.带借位的减法指令
  
  共有4条指令:
  
  这组带借位减法指令是从累加器A中的内容减去指定的变量和进位标志Cy的值,结果存放在累加器A中。
  
  如果位7需借位则Cy置l,否则Cy清0;如果位3需借位则Ac置1,否则Ac清0;如果位6需借位而位7不需要借位,或者位7需借位而位6不需借位,则溢出标志位OV置1,否则OV清0。
  
  源操作数允许有寄存器寻址、直接寻址、寄存器间接寻址和立即数寻址方式。
  
  【例3-5】 (A)=C9H,(R2)=54H,Cy=l,执行指令
  
  运算式为
  
  结果为(A)=74H,Cy=0,Ac=0,OV=1(位6向位7借位)。
  
  6.减1指令
  
  共有4条指令:
  
  这组指令的功能是指定的变量减1。若原来为OOH,减1后下溢为FFH,不影响标志位(P标志除外)。
  
  【例3-6】 (A)=OFH,(R7)=19H,(30H)=OOH,(Rl)=40H,(40H)=OFFH,执行指令
  
  结果为(A)=OEH,(R7)=18H,(30H)=OFFH,(40H)=OFEH,P=l,不影响其他标志。
  
  7.乘法指令
  
  这条指令的功能是把累加器A和寄存器B中的无符号8位整数相乘,其16位积的低位字节在累加器A中,高位字节在B中。如果积大于255,则溢出标志位OV置1,否则OV清0。进位标志位Cy总是清0。
  
  8.除法指令
  
  该指令的功能是用累加器A中8位无符号整数(被除数)除以B中8位无符号整数(除数),所得的商(为整数)存放在累加器A中,余数存放在寄存器B中,且Cy和溢出标志位OV清0。如果B的内容为0(即除数为0),则存放结果的A、B中的内容不定,并溢出标志位OV置l。
  
  【例3-7】 (A)=FBH,(B)=12H,执行指令
  
  结果为(A)=ODH,(B)=11H,Cy=0,OV=O。


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭