as.info: ARM Opcodes
Go backward to ARM Directives
Go up to ARM-Dependent
Go to the top op as
Opcodes
`as' implements all the standard ARM opcodes. It also implements
several pseudo opcodes, including several synthetic load instructions.
`NOP'
nop
This pseudo op will always evaluate to a legal ARM instruction
that does nothing. Currently it will evaluate to MOV r0, r0.
`LDR'
ldr <register> , = <expression>
If expression evaluates to a numeric constant then a MOV or MVN
instruction will be used in place of the LDR instruction, if the
constant can be generated by either of these instructions.
Otherwise the constant will be placed into the nearest literal
pool (if it not already there) and a PC relative LDR instruction
will be generated.
`ADR'
adr <register> <label>
This instruction will load the address of LABEL into the indicated
register. The instruction will evaluate to a PC relative ADD or
SUB instruction depending upon where the label is located. If the
label is out of range, or if it is not defined in the same file
(and section) as the ADR instruction, then an error will be
generated. This instruction will not make use of the literal pool.
`ADRL'
adrl <register> <label>
This instruction will load the address of LABEL into the indicated
register. The instruction will evaluate to one or two PC relative
ADD or SUB instructions depending upon where the label is located.
If a second instruction is not needed a NOP instruction will be
generated in its place, so that this instruction is always 8 bytes
long.
If the label is out of range, or if it is not defined in the same
file (and section) as the ADRL instruction, then an error will be
generated. This instruction will not make use of the literal pool.
For information on the ARM or Thumb instruction sets, see `ARM
Software Development Toolkit Reference Manual', Advanced RISC Machines
Ltd.
Created Wed Sep 1 16:41:04 2004 on bee with info_to_html version 0.9.6.