单片机的加法指令中ADD与ADDS的区别
2个回答
推荐于2017-10-05
展开全部
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
指令名称:寄存器加法指令
指令代码: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
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询