文章目录
-
-
- [BIC 指令](#BIC 指令)
- [ORR 位或指令](#ORR 位或指令)
- [EOR 异或指令](#EOR 异或指令)
-
上篇文章:ARM 常见汇编指令学习 5 -- arm64汇编指令 wzr 和 xzr
BIC 指令
指令格式
c
bic{条件}{S} Rd,Rn,operand
根据operand哪个位为1,清除Rn对应的位,然后将结果存入Rd。
使用例子:
c
bic r0, r0, #0x00002000 // clear bit[13] 0010 0000 0000 0000
bic r0, r0, #0x00000007 // clear bit[2:0] 0000 0000 0000 0111
第1条汇编代码表示将 r0 寄存器的 bit13 清0,其它bit不变。
第2条汇编代码表示将 r0 寄存器的bit0-bit2清0,气他bit不变。
ORR 位或指令
指令格式
c
orr{条件}{S} Rd,Rn,operand
根据operand哪个位为1,将Rn对应的位设置为1,其余位不变,然后将结果存入Rd。
使用例子:
c
orr R0, R0, #(0x1 << 8)
orr R0, R0, #(0x1 << 16)
表示将 r0 寄存器的 bit8 和bit16 置 1,其它bit不变。
EOR 异或指令
指令格式
c
eor{条件}{S} Rd,Rn,operand
指令说明
eor 指令将 Rn 的值与操作数 operand 按位逻辑 "异或 ",相同为0 ,不同为1,结果存放到目的寄存器Rd 中。