Keil Logo

LDAV Instruction

The LDAV instruction loads the value of a local variable or function argument into the specified register.

LDAV Rd, Rn, var

Where

Rd Is the register that is loaded with the contents of var.
Rn Is a temporary register that is used as a base pointer for stack-based variable addressing. Rd and Rn must be distinct. They may not be the same register.
var Is the name of the variable.

The LDAV instruction generates different code depending on the location of var.

  • When var is located in a register (Rv), the following code is generated for LDAV:
    MOV Rd,Rv
    
  • When var is located on the stack and its displacement is within the range of ARM or Thumb instructions, the following code is generated for LDAV:
    LDR Rd,[R13,#(displacement of var)]
    
  • When var is located on the stack but its displacement is outside the range of ARM or Thumb instructions, the following code is generated for LDAV:
    LDR Rn,#(displacement of var)
    ADD Rn,R13
    LDR Rd,[Rn]
    

Note

  • The LDAV instruction is not an ARM or Thumb instruction. It is only supported by the inline assembler in the CARM Compiler.
  Arm logo
Important information

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies.

Change Settings

Privacy Policy Update

Arm’s Privacy Policy has been updated. By continuing to use our site, you consent to Arm’s Privacy Policy. Please review our Privacy Policy to learn more about our collection, use and transfers
of your data.