ARM指令语法格式,寻址方式
ARM指令语法格式
<opcode>{<cond>}{S} <Rd>, <Rn>,<shifter_operand>
每一条ARM指令的条件码域(4bit)
EQ | Equal | 相等 | Z=1 |
寻址方式
数据处理指令的操作数寻址方式 :11种
<opcode>{<cond>}{S} <Rd>, <Rn>, <shifter_operand> #<immediate> <Rm> <Rm>,LSL #<shift_imm> <Rm>,LSL <Rs> <Rm>,LSR #<shift_imm> <Rm>,LSR <Rs> <Rm>,ASR #<shift_imm> <Rm>,ASR <Rs> <Rm>,ROR #<shift_imm> <Rm>,ROR <Rs> <Rm>,RRX
字及无符号字节的Load/Store指令的寻址方式 :9种
LDR{<cond>}{B} {T} <Rd>, <address_mode> [<Rn>, #+/- <offset_12>] [<Rn>, #+/- <Rm>] [<Rn>, #+/- <Rm>, <shift>#<shift_imm>] [<Rn>, #+/- <offset_12>]! [<Rn>, #+/- <Rm>]! [<Rn>, #+/- <Rm>, <shift>#<shift_imm>]! [<Rn>], #+/- <offset_12> [<Rn>], #+/- <Rm> [<Rn>], #+/- <Rm>, <shift>#<shift_imm>
杂类Load/Store指令的寻址方式 :6种
LDR|STR{<cond>}H|SH|SB|D <Rd>, <addressing_mode> [<Rn>, #+/- <offset_8>] [<Rn>, #+/- <Rm>] [<Rn>, #+/- <offset_8>]! [<Rn>, #+/- <Rm>]! [<Rn>], #+/- <offset_8> [<Rn>], #+/- <Rm>
批量Load/Store指令的寻址方式 :4种
LDR|STR{<cond>}H|SH|SB|D <Rd>, <addressing_mode> IA @Increment After IB @Increment Before DA @Decrement After DB @Decrement Before FD @Full Decending ED @Empty Decending FA @Full Ascending EA @Empty Ascending
协处理器Load/Store指令的寻址方式 :4种
<opcode>{<cond>}{L} <coproc>, <CRd>, <addressing_mode> [<Rn>, #+/- <offset_8>*4] [<Rn>, #+/- <offset_8>*4]! [<Rn>], #+/- <offset_8>*4 [<Rn>], <option>