位运算符
符号位:最高位
1 : 表示是负数
0 : 表示是正数
算术移位:考虑符号位
算术右移:asr
ASR{S} ,,#
ASR{S} ,,
逻辑移位:不考虑符号位
逻辑左移:lsl
逻辑右移:lsr
循环右移 :ror
ROR{S}<c> <Rd>,<Rm>,#<imm>
ROR{S}<c> <Rd>,<Rn>,<Rm>
左移: 逻辑左移
右移: ??
c >>
位或:|
0 0 => 0
0 1 => 1
1 0 => 1
1 1 => 1
orr
ORR{S}<c> <Rd>,<Rn>,#<const>
位与:&
0 0 => 0
0 1 => 0
1 0 => 0
1 1 => 1
and
取反:~
0 => 1
1 => 0
mvn
异或:^
0 0 => 0
0 1 => 1
1 0 => 1
1 1 => 0
eor
置1
1 << n | 左移lsl -> orr
置0
~(1 << n) & lss -> mvn -> and
清空
bic
BIC{S}<c> <Rd>,<Rn>,#<const>
BIC{S}<c> <Rd>,<Rn>,<Rm>{,<shift>}
Logical shift left <n> bits. 1 <= <n> <= 31.
LSL #<n>
Logical shift right <n> bits. 1 <= <n> <= 32.
LSR #<n>
Arithmetic shift right <n> bits. 1 <= <n> <= 32.
ASR #<n>
Rotate right <n> bits. 1 <= <n> <= 31.
ROR #<n>
BIC{S}<c> <Rd>,<Rn>,<Rm>,<type> <Rs>
算术运算符
add:
ADD{S} ,,#
ADD{S} ,,{,}
ADD{S} ,,,
sub:
mul:
比较运算符:
cmp
CMP ,#
CMP ,{,}
CMP ,,
大于: > gt
大于等于: >= ge
小于: < lt
小于等于: <= le
等于: == eq
不等于: != ne
跳转
bl : 可以返回跳转
b : 不可以返回跳转