51单片机的add0是什么意思(单片机中addc指令)
导语:51单片机ADD,ADDC与SUBB指令详细分析
ADD与ADDC 加法指令:
例如:执行0xfefe+0x0003
由于单片机只能处理8位数据加减法 具体操作如下:
/////////////////////////////低八位加法//////////////////////////////////
mov r0,0x03 :0x0003先将低八位给r1寄存器
mov a,r0
ADD a,r1
MOV r2, A r2存放计算结果低八位
执行ADD加法指令后 A寄存器中的值为数据低八位相加得0x01,cy进位标志位为1。
/////////////////////////////高八位加法//////////////////////////////////
mov r0,0x00 :0x0003先将高八位给r1寄存器
mov a,r0
ADDC a,r1
MOV r3, a ;r3存放计算结果高八位
执行ADDC加法指令后 A寄存器中的值为数据高八位相加得0xfe在加上低八相加后向高八位的进位 也就是进位标志位中的 1,最后结果a寄存器为0xff。
注意:当加上CY位后 CY标志位清零
减法指令SUBB 加法指令:
例如:执行0xfe9f-0x00af
由于单片机只能处理8位数据加减法 具体操作如下:
/////////////////////////////低八位减法//////////////////////////////////
mov r0,0xaf :0x00af先将低八位给r1寄存器
mov a,r0
subb a,r1
MOV r2, a ;保存低八位减法所得结果
当a减r1数据时候,由于a寄存器中的值比r1寄存器中值小 所以向高位借一位 就把借位标志位Cy置1 ,结果为0xf0
/////////////////////////////高八位减法//////////////////////////////////
mov r0,0x00:0x00af先将高八位给r1寄存器
mov a,r0
subb a,r1
MOV r3, a ;保存高八位减法所得结果
当a减r1数据时候,由于0xfe9f低八位做减法向高八位借一位,所以高八位做减法时候 r0寄存器中0xfe减掉借走的一位,也就是 借位标志位Cy。也就是r0寄存器中的数据减去cy标志位后在减r1寄存器的值0x00所得结果a为0xfd
注意:当减掉CY位后 CY标志位清零
本文内容由快快网络小畅整理编辑!