4.1. Instruction summary

Table 4.1 gives an overview of the instructions available in the ARM and Thumb instruction sets. Use it to locate individual instructions and pseudo-instructions described in the rest of this chapter.

The § column in Table 4.1 shows the ARM architecture in which each instruction first appeared.

Table 4.1. Location of instructions

MnemonicBrief descriptionPage§
ADC, ADDAdd with Carry, AddADD, SUB, RSB, ADC, SBC, and RSCAll
ADR pseudo-instructionLoad program or register-relative address (short range)ADR pseudo-instructionAll
ADRL pseudo-instructionLoad program or register-relative address (medium range)ADRL pseudo-instructionAll
ANDLogical ANDAND, ORR, EOR, and BICAll
ASRArithmetic Shift RightASR, LSL, LSR, ROR, and RRXAll
BBranchB, BL, BX, BLX, and BXJAll
BICBit ClearAND, ORR, EOR, and BICAll
BKPTBreakpointBKPT5
BLBranch with LinkB, BL, BX, BLX, and BXJAll
CDP, CDP2Coprocessor Data Processing operationCDP and CDP2All, 5
CLZCount leading zerosCLZ5
CMN, CMPCompare Negative, CompareCMP and CMNAll
EORExclusive ORAND, ORR, EOR, and BICAll
LDC, LDC2Load CoprocessorLDC and STCAll, 5
LDMLoad Multiple registersLDM and STMAll
LDRLoad Register instructionsMemory access instructionsAll
LDR pseudo-instructionLoad Register pseudo-instructionLDR pseudo-instructionAll
LSL, LSRLogical Shift Left, Logical Shift RightASR, LSL, LSR, ROR, and RRXAll
MCR, MCR2, MCRR, MCRR2Move from Register(s) to CoprocessorMCR, MCR2, MCRR, and MCRR2All, 5, 5E, 6
MLA, MLSMultiply Accumulate, Multiply and SubtractMUL and MLAAll
MOVMoveMOV and MVNAll
MRC, MRC2Move from Coprocessor to RegisterMRC, MRC2, MRRC and MRRC2All, 5
MRSMove from PSR to registerMRSAll
MSRMove from register to PSRMSRAll
MULMultiplyMUL and MLAAll
MVNMove NotMOV and MVNAll
NOPNo OperationNOPAll
ORNLogical OR NOTAND, ORR, EOR, and BICT2
ORRLogical ORAND, ORR, EOR, and BICAll
PUSH, POPPUSH, POP registersPUSH and POPAll T
QADD, QDADD, QDSUB, QSUBSaturating ArithmeticQADD, QSUB, QDADD, and QDSUB5ExP
RORRotate Right RegisterASR, LSL, LSR, ROR, and RRXAll
RSB, RSC, SBCReverse Sub, Reverse Sub with Carry, Sub with CarryADD, SUB, RSB, ADC, SBC, and RSCAll
SMISecure Monitor InterruptSMIZ
SMLALSigned Multiply Accumulate (64 <= 64 + 32 x 32)UMULL, UMLAL, SMULL, and SMLALM
SMLALxySigned Multiply Accumulate (64 <= 64 + 16 x 16) SMLALxy5ExP
SMULLSigned Multiply (64 <= 32 x 32)UMULL, UMLAL, SMULL, and SMLALM
SMULxySigned Multiply (32 <= 16 x 16)SMULxy and SMLAxy5ExP
SMULWySigned Multiply (32 <= 32 x 16)SMULWy and SMLAWy5ExP
STCStore CoprocessorLDC and STCAll
STC2Store CoprocessorLDC2 and STC25ExP
STMStore Multiple registersLDM and STMAll
STRStore Register instructionsMemory access instructionsAll
SUBSubtractADD, SUB, RSB, ADC, SBC, and RSCAll
SWISoftware InterruptSWIAll
SWP, SWPBSwap registers and memory (ARM only)SWP and SWPBAll
TEQ, TSTTest Equivalence, TestTST and TEQAll
UMLAL, UMULLUnsigned Multiply Accumulate, MultiplyUMULL, UMLAL, SMULL, and SMLALM
 (64 <= 32 x 32 + 64), (64 <= 32 x 32)  
Copyright © 2005 ARM Limited. All rights reserved.ARM DUI 0283B
Non-Confidential