标题:
ARM指令集-数据处理指令(2)
[打印本页]
作者:
look_w
时间:
2017-9-24 15:36
标题:
ARM指令集-数据处理指令(2)
9、
SUB指令
SUB指令的格式为:
SUB{条件}{S} 目的寄存器,操作数1,操作数2
SUB
指令用于
把操作数
1
减去操作数
2
,
并将
结果
存放
到目的寄存器中
。
操作数
1应
是一个寄存器,操作数
2
可以是一个寄存器,被移位的寄存器,或一个立即
数。该指令可用于有符号数或无符号数的减法运算。
如:
SUB R0,R1,R2 ; R0 = R1 - R2
SUB R0,R1,#256 ; R0 = R1 - 256
SUB R0,R2,R3,LSL#1 ; R0 = R2 - (R3 << 1)
10、
SBC指令
SBC指令的格式为:
SBC{条件}{S} 目的寄存器,操作数1,操作数2
SBC
指令用于
把操作数
1
减去操作数
2
,
再减去
CPSR中的C条件标志位的反码,并将
结果
存放
到目的寄存器中
。
操作数
1应
是一个寄存器,操作数
2
可以是一个寄存器,被移位的寄存器,或一个立即
数。该指令
使用进位标志来表示借位,这样就可以做大于
32
位的减法
,注意不要忘记设置S后缀来更改进位标志。该指令可用于有符号数或无符号数的减法运算。
如:
SUBS R0,R1,R2 ; R0 = R1 - R2 -
!
C
,并根据结果设置
CPSR
的进位标志位
11
、
RSB指令
RSB指令的格式为:
RSB{条件}{S} 目的寄存器,操作数1,操作数2
RSB
指令称为逆向减法指令,用于
把操作数
2
减去操作数
1
,
并将
结果
存放
到目的寄存器中
。
操作数
1应
是一个寄存器,操作数
2
可以是一个寄存器,被移位的寄存器,或一个立即
数。该指令可用于有符号数或无符号数的减法运算。
如:
RSB R0,R1,R2 ; R0 = R2 – R1
RSB R0,R1,#256 ; R0 = 256 – R1
RSB R0,R2,R3,LSL#1 ; R0 = (R3 << 1) - R2
12、RSC指令
RSC指令的格式为:
RSC{条件}{S} 目的寄存器,操作数1,操作数2
RSC
指令用于
把操作数
2
减去操作数
1
,
再减去
CPSR中的C条件标志位的反码,并将
结果
存放
到目的寄存器中
。
操作数
1应
是一个寄存器,操作数
2
可以是一个寄存器,被移位的寄存器,或一个立即
数。该指令
使用进位标志来表示借位,这样就可以做大于
32
位的减法
,注意不要忘记设置S后缀来更改进位标志。该指令可用于有符号数或无符号数的减法运算。
如:
RSC R0,R1,R2 ; R0 = R2 – R1 -
!
C
13、AND指令
AND指令的格式为:
AND{条件}{S} 目的寄存器,操作数1,操作数2
AND
指令用于
在两个操作数上进行逻辑与
运算
,
并
把结果放置到目的寄存器中
。
操作数
1应
是一个寄存器,操作数
2
可以是一个寄存器,被移位的寄存器,或一个立即
数。该指令常用于
屏蔽
操作数
1
的某些位
。
如:
AND R0,R0
,#
3
;
该指令保持
R0
的
0
、
1
位,其余位清零。
14、ORR指令
ORR指令的格式为:
ORR{条件}{S} 目的寄存器,操作数1,操作数2
ORR
指令用于
在两个操作数上进行逻辑
或运算
,
并
把结果放置到目的寄存器中
。
操作数
1应
是一个寄存器,操作数
2
可以是一个寄存器,被移位的寄存器,或一个立即
数。该指令常用于设置
操作数
1
的某些位
。
如:
ORR R0,R0
,#
3
;
该指令设置
R0
的
0
、
1
位,其余位保持不变。
15、EOR指令
EOR指令的格式为:
EOR{条件}{S} 目的寄存器,操作数1,操作数2
EOR
指令用于
在两个操作数上进行逻辑
异或运算
,
并
把结果放置到目的寄存器中
。
操作数
1应
是一个寄存器,操作数
2
可以是一个寄存器,被移位的寄存器,或一个立即
数。该指令常用于反转
操作数
1
的某些位
。
如:
EOR R0,R0
,#
3
;
该指令反转
R0
的
0
、
1
位,其余位保持不变。
16、BIC指令
BIC指令的格式为:
BIC{条件}{S} 目的寄存器,操作数1,操作数2
BIC
指令用于清除
操作数
1
的某些位
,
并
把结果放置到目的寄存器中
。
操作数
1应
是一个寄存器,操作数
2
可以是一个寄存器,被移位的寄存器,或一个立即
数。
操作数
2
为
32
位的掩码,
如果在掩码中设置了某一位,则清除这一位。未设置的掩码位保持不变。
如:
BIC R0,R0
,#%
1011
;
该指令清除
R0
中的位
0
、
1
、和
3
,其余的位保持不变。
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/)
Powered by Discuz! 7.0.0