搜索
写经验 领红包
 > 动物

51单片机的add0是什么意思(单片机中addc指令)

导语:51单片机ADD,ADDC与SUBB指令详细分析

51单片机的addr0是什么意思(单片机中addc指令)

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标志位清零

本文内容由快快网络小畅整理编辑!