指令示例:
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,
其余的位保持不变。
三、加法指令与乘加指令
ARM 微处理器支持的乘法指令与乘加指令共有 6 条, 可分为运算结果为 32 位和运算结果
为 64 位两类,与前面的数据处理指令不同,指令中的所有操作数、目的寄存器必须为通用
寄存器,不能对操作数使用立即数或被移位的寄存器, 同时, 目的寄存器和操作数 1 必
须是不同的寄存器。
乘法指令与乘加指令共有以下 6 条:
1、 MUL 指令
MUL 指令的格式为:
MUL{条件}{S} 目的寄存器,操作数 1,操作数 2
MUL 指令完成将操作数 1 与操作数 2 的乘法运算,并把结果放置到目的寄存器中,同时可
以根据运算结果设置 CPSR 中相应的条件标志位。
其中,操作数 1 和操作数 2 均为 32 位的有符号数或无符号数。
指令示例:
MUL R0,R1,R2 ;R0 = R1 × R2
MULS R0,R1,R2 ;R0 = R1 × R2,同时设置 CPSR
中的相关条件标志位
5 / 21
评论0