Microprocessor Design and the ARM

Types of Instructions

There are three broad categories of instruction in the ARM assembly language. These are:

    • Data Processing: this includes arithmetic and logical operations, comparison operations and register movement operations;
    • Data Movement: these are instructions to load and store data from and to memory;
    • Control Flow: these are software interrupts and branch instructions that alter the order of execution.

For ARM data processing instructions, operands (values) are always 32 bits wide. The operands are either held in registers or are specified as constants (called literals) in the instruction itself. The result of a data processing instruction is also a 32 bit datum and is stored in a register. Most data processing instructions will have three operands, two of which are inputs and one for the result.