Keil Logo

Register Usage

Assembler functions may destroy the contents of R1-R12, PSW, MDL, MDH, MDC, and DPP0. When invoking a C function from assembly, assume that these registers are destroyed.

When using the MAC directive the compiler uses in addition the MAC registers MSW, MAL, MAH, MRW, and IDX0. When code is generated with the MAC directive, these registers are used by C functions (in addition to the register listed above). When invoking a C function form assembly you need therefore to assume that these registers are destroyed too.

The following registers have special meaning and must be preserved by the assembler subroutine.

Register Description
R0 R0 is the user stack pointer. At the end of the assembler subroutine the value of R0 must be the same as at the start of the routine.
R13 This register may be used but its contents must be saved (on entry) and restored (before returning).
R14 This register may be used but its contents must be saved (on entry) and restored (before returning).
R15 This register may be used but its contents must be saved (on entry) and restored (before returning).
DPP1 This DPP register may not be modified by assembler subroutines. It contains the memory class page and may be used in an interrupt service routine that interrupts the assembler subroutine.
DPP2 This DPP register may not be modified by assembler subroutines. It contains the memory class page and may be used in an interrupt service routine that interrupts the assembler subroutine.
DPP3 If DPP3 is modified in the assembler subroutine, it must be reset to 3 (SYSTEM PAGE) before returning.

Note

  • DPP0 is used only when the MOD167 C166 Compiler directive is not specified.
  • If your assembler programs alter DPP0, the DPPUSE L166 Linker directive may not be used to assign DPP0 to the near memory area.
  • If your assembler programs alter DPP0 or DPP3, the NODPPSAVE C166 Compiler directive may not be used to bypass saving and restoring DPP0 and DPP3 in interrupts.
  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.