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

热点内容
应用被加密但不知道密码 浏览:584
百度云黑马android 浏览:773
java格式化long 浏览:893
汽车如何加密文档 浏览:625
公司理财第9版pdf 浏览:524
微信个人表情在文件夹 浏览:833
加密狗密码监控 浏览:437
重载发生在编译时 浏览:417
怎么用app买东西 浏览:532
ug后处理多坐标宏命令 浏览:34
性教育pdf 浏览:863
解释方式编译方式名词解释 浏览:851
wrf编译出现module 浏览:616
插入算法最基础代码 浏览:27
powermill和ug编程 浏览:843
vf命令按钮 浏览:283
涂鸦王国app怎么 浏览:37
oppo如何关闭加密应用震动 浏览:802
直接拍PDF 浏览:580
服务器有一个自动分配的ip地址吗 浏览:470