【转】ARM指令语法格式,寻址方式
0赞
发表于 10/19/2016 10:15:39 AM
阅读(1678)
ARM指令语法格式
<opcode>{<cond>}{S} <Rd>, <Rn>,<shifter_operand>
每一条ARM指令的条件码域(4bit)
寻址方式
数据处理指令的操作数寻址方式 :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>