|
ADD与SUB——低寄存器加法和减法
对于低寄存器操作,这2条指令各有如下3种形式:
2个寄存器的内容相加或相减,结果放到第3个寄存器中;
寄存器中的值加上或减去一个小整数,结果放到另一个不同的寄存器中;
寄存器中的值加上或减去一个大整数,结果放回同一个寄存器。
格式
op Rd,Rn,Rm
op Rd,Rn,#expr3
op Rd,#expr8
其中: Rd 目的寄存器。它也用作“op Rd,#expr
Rn 第1操作数寄存器
Rm 第2操作数寄存器
Expr3 表达式或3位立即数,为取值在-7~+7范围内的整数。
Expr8 表达式或8位立即数,为取值在-255~+255范围内的整数。
用法
若expr3或expr8为负值,则ADD指令汇编成相应的带正数常量的SUB指令,SUB指令汇编成相对应的带正数常量的ADD指令。指令中的Rd、Rn和Rm必须是低寄存器。这些指令更新标志N、Z、C和V。
例子
ADD R3,R1,R5
SUB R0,R4,#5
ADD R7,#201
ADD——高或低寄存器
将寄存器中值相加,结果送回到第1操作数寄存器。
格式
ADD Rd,Rm
其中:Rd 目的寄存器,也是第1操作数寄存器
Rm 第2操作数寄存器
用法
这条指令将Rd和Rm中的值相加,结果放在Rd中Rd和Rm可以是R0~R15中的任何一个,而不限于只是低寄存器若Rd和Rm是低寄存器,则更新条件码标志N、Z、C和V。其他情况下不更新条件码标志。
注意:若Rd和Rm都是低寄存器,则指令“ADD Rd,Rm”汇编成指令“ADD Rd,Rd,Rm”。
例子
ADD R12,R4 ;R12<-R12+R4
ADD R10,R11 ;R10<-R10+R11
ADD R0,R8 ;R0<-R0+R8
ADD R2,R4 ;等价于“ADD R2,R2,R
凌阳教育,专注嵌入式人才培养多年,完善的培养方案,强大的师资,合理的课程安排,成功从小白蜕变为嵌入式工程师。想了解凌阳教育,或者获得更多嵌入式学习资料的免费下载,请点击www.sunplusedu.com访问凌阳教育官网