James Bryant

【转】ARM指令语法格式,寻址方式

0
阅读(1476)

ARM指令语法格式

<opcode>{<cond>}{S} <Rd>, <Rn>,<shifter_operand>

每一条ARM指令的条件码域(4bit)

image

寻址方式

数据处理指令的操作数寻址方式 :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>