单片机的加法指令中ADD与ADDS的区别
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了单片机的加法指令中ADD与ADDS的区别相关的知识,希望对你有一定的参考价值。
ADD不带进位加法指令;指令名称:寄存器加法指令
指令代码:28H~2FH
指令功能:累加器内容与寄存器内容相加 操作内容:A←(A)+(Rn), n=0~7 字节数: 1
机器周期:1
影响标志位:C,AC,OV
ADDS是32位数的加法运算,影响进位标志位C而不影响运算结果的值,ADCS是大于32位数的加法,低32位数相加的结果影响标志位C的值(作为进位值)就得加到高32位数的相加运算里去,以此类推,可做高32数的加法。
例: 加两个 128 位的数
128 位结果:寄存器 0,1,2, 3
第一个 128 位数: 寄存器 4,5,6,7
第二个 128 位数: 寄存器 8,9,10,11
ADDS R0, R4, R8 ; 加低端的字,影响C
ADCS R1, R5, R9 ; 加下一个字, +C
ADCS R2, R6, R10 ; 加第三个字, +C
ADCS R3, R7, R11 ; 加高端的字, +C 参考技术A ADDC吧?
ADD是不带进位加
ADDC是带进位加。
加法指令复习
ADD加法指令
汇编格式:ADD 目的操作数 源操作数
执行操作:目的操作数 目的操作数+源操作数
ADC带进位加法指令
汇编格式:ADC 目的操作数,源操作数
执行功能:将目的操作数与源操作数、进位的和送目的操作数
INC增量指令
汇编格式:INC操作数
执行操作:操作数 操作数
操作数的值增1
加法指令
ADD AX,CX ADC DX,BX
加法指令都可作字或字节运算,除INC指令不影响CF标志位外,其他标志位都受加法指令操作结果的影响
SUB减法指令
汇编格式:SUB目的操作数 源操作数
执行操作:目的操作数 目的操作数减源操作数
SBB带错位减法指令
执行的操作:目的操作数 目的操作数减源操作数-CF
指令功能:将目的操作数减去源操作数与进位的差值送目的操作数
DEC减量指令
汇编格式:DEC 操作数
执行操作:操作数 操作数-1
NEG求补指令
汇编格式:NEG操作数
执行操作:操作数<-0-操作数
指令功能:对操作数进行求补
在微机中,带符号的二进制数值数据都采用补码,因此,此处的操作数是补码,所以求-操作数实质上是求补操作
只有当操作数为0时求补运算的结果使CF=0,其他情况则均为1;只有当操作数为-128或-32768时使OF=1,其他情况则均为0
CMP 目的操作数-源操作数
指令功能:相减结果不保存,只是根据结果设置标志位
以上是关于单片机的加法指令中ADD与ADDS的区别的主要内容,如果未能解决你的问题,请参考以下文章