You copied the Doc URL to your clipboard.

instruction set overview

instructions can be grouped by functional area.

The following table describes some of the functional groupings of the instructions in A64.

Table 4-3 A64 instruction groups

Instruction group


Branch and control

These instructions do the following:

  • Branch to and return from subroutines.
  • Branch backwards to form loops.
  • Branch forward in conditional structures.
  • Generate and return from exceptions.

Data processing

These instructions operate on the general-purpose registers. They can perform operations such as addition, subtraction, or bitwise logic on the contents of two registers and place the result in a third register. They can also operate on the value in a single register, or on a value in a register and an immediate value supplied within the instruction.

The addition and subtraction instructions can optionally left shift the immediate operand, or can sign or zero-extend and shift the final source operand register.

A64 includes signed and unsigned 32-bit and 64-bit multiply and divide instructions.

Register load and store

These instructions load or store the value of a single register or pair of registers from or to memory. You can load or store a single 64-bit doubleword, 32-bit word, 16-bit halfword, or 8-bit byte, or a pair of words or doublewords. Byte and halfword loads can either be sign-extended or zero-extended to fill the 32-bit register. You can also load and sign-extend a signed byte, halfword or word into a 64-bit register, or load a pair of signed words into two 64-bit registers.

System register access

These instructions move the contents of a system register to or from a general-purpose register.