导航:首页 > 操作系统 > 51单片机daa指令为什么不能减法

51单片机daa指令为什么不能减法

发布时间:2025-02-10 15:13:18

单片机程序里 带进位减法怎样进行十进制调整

51单片机的DA A指令,放在SUBB指令后面,是不起作用的;
必须把SUBB指令变换成ADD指令,才能用DA A指令进行调整。

这里提到了“减法”变换成“加法”,就要借用时钟“倒拨”变成“正拨”的方法,倒拨15分钟,和正拨45分钟,效果相同。15和45就是以60为模的互补的数。
两位十进制数,是以100为模的,减去60,和加上40,效果是相同的。
100,可以分解,写成99+1,按照十六进制,可以写成9AH。

那么,将A和60相减,程序如下:
MOV R0, A ;保存被减数.
MOV A, #9AH ;100
CLR C
SUBB A, #60H ;减去减数,得到100的补数.
ADD A, R0 ;使用加法即可.
DA A ;调整为BCD数.
;完

⑵ 汇编中为什么要有ADD与ADDC两个指令。知道他们区别,但不知道为什么要有另一个指令。

在汇编语言编程的时候,ADDC指令,即是带进位的加法指令,用于多字节加法运算,低位字节相加可能产生进位,所以高位字节运算时,必须使用带进位的加法运算。

汇编中的ADD指令是加法指令,其功能是把源操作所指出的内容加到累加器A,其结果存在A中。但是对于多字节数相加,就必须用ADDC指令了。因为ADDC指令的功能是把源操作数所指出的内容和累加器内容及进位标志CY相加,结果存于A中。

单片机中的汇编指令包括,算术操作类指令,布尔变量操作类指令,逻辑操作数指令,控制转移类指令。其中算术操作类指令,又包括,加法、减法、加一、减一和乘法、除法运算指令。借助溢出标志可以对有符号数进行补码运算,借助进位标志,可进行多精度加、减运算。

(2)51单片机daa指令为什么不能减法扩展阅读

两数相加运算步骤:

1)把第一个数从它的存贮单元(Location)中取出来,送至运算器。

2)把第二个数从它所在的存贮单元中取出来,送至运算器;

3)相加;

4)把相加完的结果,送至存贮器中指定的单元。

ADD运算中的注意事项:

1)如果位7有进位,则进位标志Cy置“1”,否则清0;

2)如果位3有进位,则辅助进位标志Ac置“1”,否则清0;

3)溢出标志位OV:如果位6有进位,而位7没有进位;或者位7有进位,而位6 没有,则溢出标志位OV置“1”,否则清0。OV状态,只有在带符号数加法运算时才有意义。

阅读全文

与51单片机daa指令为什么不能减法相关的资料

热点内容
分段加密的安全性 浏览:507
咪咕直播为什么没有适配安卓系统 浏览:172
php模版大全 浏览:102
没车能解压吗 浏览:634
php开发oa系统源码 浏览:759
怎么安装苹果ios的app 浏览:581
app拉新如何机刷 浏览:480
zendeclipseforphp 浏览:480
同时有几个微信如何加密微信 浏览:86
大众20t压缩比 浏览:566
程序员要记住的500个单词 浏览:830
wq快捷方式在哪个文件夹 浏览:965
云南到河北源码 浏览:92
安卓手机怎么玩造梦3 浏览:60
多玩我的世界盒子怎么创造服务器地址 浏览:986
手机如何下载米家app 浏览:96
未知来源app在哪里 浏览:206
命令与征服3合集 浏览:752
有免税标签有溯源码是假的吗 浏览:218
stc89c52单片机引脚图 浏览:223