Skip to main content

IAR Embedded Workbench for Arm 9.70.x

Summary

In this section:

In the following table, as well as in the following descriptions:

  • ARM denotes pseudo-instructions available after the ARM directive

  • CODE16* denotes pseudo-instructions available after the CODE16 directive

  • THUMB denotes pseudo-instructions available after the THUMB directive.

The properties of THUMB pseudo-instructions depend on whether the used core has the Thumb-2 instruction set or not.

Note

In Thumb mode (and CODE16), the syntax LDR register, =expression can, for values from 0 to 255, be translated into a MOVS instruction. This instruction modifies the program status register.

This is a summary of the available pseudo-instructions for the A32 and T32 instruction sets:

Pseudo-instruction

Directive

Translated to

Description

ADR

ARM

ADD, SUB

Loads a program-relative address into a register.

ADR

CODE16*

ADD

Loads a program-relative address into a register.

ADR

THUMB

ADD, SUB

Loads a program-relative address into a register.

ADRL

ARM

ADD, SUB

Loads a program-relative address into a register.

ADRL

THUMB

ADD, SUB

Loads a program-relative address into a register.

LDR

ARM

MOV, MVN, LDR

Loads a register with any 32-bit expression.

LDR

CODE16*

MOV, MOVS, LDR

Loads a register with any 32-bit expression.

LDR

THUMB

MOV, MOVS, MVN, LDR

Loads a register with any 32-bit expression.

MOV

CODE16*

ADD

Moves the value of a low register to another low register (R0R7).

MOV32

THUMB

MOV, MOVT

Loads a register with any 32-bit value.

NOP

ARM

MOV

Generates the preferred Arm no-operation code.

NOP

CODE16*

MOV

Generates the preferred Thumb no-operation code.

Table 164. Pseudo-instructions for A32 and T32 


* Deprecated. Use THUMB instead.

This is a summary of the available pseudo-instructions for the A64 instruction set:

Pseudo-instruction

Translated to

Description

ADRL

ADRP, ADD

Loads a program-relative address into a register.

LDR

LDR

Loads a register with any 32-bit expression.

MOVL

MOVZ(, MOVK)

Loads a register with a 32-bit or 64-bit value.

Table 165. Pseudo-instructions for A64