ARM采用的是32位架构
ARM指令集(32-bit) Thumb指令集(16-bit)
ARM instruction set encoding 指令的机器码(如指令 moveq r0,r1 机器码 0x01A00001)
0000(EQ) Z = 1 Equal 相等
0001(NE) Z = 0 Not Equal 不相等
0010(CS/HS) C = 1 Carry Set 有进位,无符号数大于等于
0011(CC/LO) C = 0 Carry Clear 无进位,无符号数小于
0100(MI) N = 1 Minus, negative 减,负数
0101(PL) N = 0 Plus, porsitive or zero 加,正数或零
0110(VS) V = 1 Overflow Set 溢出
0111(VC) V = 0 Overfow Clear 无溢出
1000(HI) C == 1 and Z == 0 Unsigned Higher 无符号数大于
1001(LS) C == 0 or Z == 1 Unsigned lower or same 无符号数小于等于
1010(GE) N == V Signed greater than or same
1011(LT) N != V Signed Less Than 有符号数小于
1100(GT) Z = 0 and N == V Signed Greater Than 有符号数大于
1101(LE) Z == 1 or N != V Signed less than or equal 有符号数小于等于
1110(none) 不启用条件判断
立即数合法性
用伪指令
ldr r0,=0x445501 @用伪指令 替换
ARM指令包含条件判断