5 arm instruction set overview – ARM VERSION 1.2 User Manual

Page 18

Advertising
background image

Writing ARM and Thumb Assembly Language

2-6

Copyright © 2000, 2001 ARM Limited. All rights reserved.

ARM DUI 0068B

2.2.5

ARM instruction set overview

All ARM instructions are 32 bits long. Instructions are stored word-aligned, so the least
significant two bits of instruction addresses are always zero in ARM state. Some
instructions use the least significant bit to determine whether the code being branched
to is Thumb code or ARM code.

See Chapter 4 ARM Instruction Reference for detailed information on the syntax of the
ARM instruction set.

ARM instructions can be classified into a number of functional groups:

Branch instructions

Data processing instructions

Single register load and store instructions on page 2-7

Multiple register load and store instructions on page 2-7

Status register access instructions on page 2-7

Semaphore instructions on page 2-7

Coprocessor instructions on page 2-7.

Branch instructions

These instructions are used to:

branch backwards to form loops

branch forward in conditional structures

branch to subroutines

change the processor from ARM state to Thumb state.

Data processing instructions

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 a constant supplied within the instruction (an
immediate value).

Long multiply instructions (unavailable in some architectures) give a 64-bit result in
two registers.

Advertising