导航:首页 > 操作系统 > 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指令为什么不能减法相关的资料

热点内容
程序员放弃后会怎样 浏览:186
河北模具编程 浏览:189
adb查找命令 浏览:323
安卓手机视频文件夹怎么打开 浏览:313
平板加密手机后怎么关闭 浏览:572
流媒体服务器应该注意什么 浏览:538
d8命令编译 浏览:967
压缩包解压需要多少空间 浏览:148
如何查找app属性 浏览:389
android人脸识别技术 浏览:323
pc104编程 浏览:336
二维码反编译破解推广 浏览:684
修改服务器的mac地址 浏览:529
好玩的编程软件 浏览:901
编程语言创始人有钱吗 浏览:808
短视频app怎么获客 浏览:16
查看云服务器的应用 浏览:438
javadump工具 浏览:566
程序员16g 浏览:448
程序员没有办法成为top怎么办 浏览:221