ARM指令的基本格式如下

<opcode>{<cond>}{S} <Rd>,<Rn>,{<Op2>};

其中,< >内的项是必需的,{ }内的项是可选的。上述指令格式中的opcode、cond 与S 之间没有分隔符,S 与Rd 之间用空格隔开。

图片加载失败

immed_8r—常数表达式

该常数必须对应8位位图,即一个8位的常数通过循环右移偶数位得到的32位常数。

寄存器Rm:

在寄存器方式下操作数即为寄存器的数值。例如指令:

// R1 = R1 - R2;
SUB R1,R1,R2

寄存器Rm移位

将寄存器的移位结果作为操作数,Rm 值保持不变。例如指令:

R1 = R1 + (R1 << 3);
ADD R1,R1,R1,LSL#3

指令举例

// R0 = *R1;
LDR R0,[R1]

/*
  if (CMP指令比较的两个数相等)
    R0 = *R1;
*/
LDREQ R0,[R1]

// R0 = *(R1 + R2);
LDR R0,[R1,R2]

// R0 = *(R1 + 8);
LDR R0,[R1,#8]!

// R0 = *R1; R1 += R2;
LDR R0,[R1],R2