The ARM Instruction Set

1 minute read

Mnemonic Instruction Action
ADC Add with carry Rd: = Rn + Op2 + Carry
ADD Add Rd: = Rn + Op2
AND AND Rd: = Rn AND Op2
BIC Bit clear Rd: = Rn AND NOT Op2
BL Branch with link R14: = R15, R15: = address
BX Branch and exchange R15: = Rn, T bit: = Rn[0]
LDR Load register from memory Rd: = (address)
MOV Move register or constant Rd: = Op2
MVN Move negative register Rd: = 0 × FFFFFFFF EOR Op2
MRS Move PSR status/flags to register Rn: = PSR
MSR Move register to PSR status/flags PSR: = Rm
ORR OR Rd: = Rn OR Op2
SUB Subtrace Rd: = Rn - Op2
STR Store register to memory <address>: = Rd

Table 3-2. Condition Code Summary

Code Suffix Flags Meaning
0000 EQ Z set equal
0001 NE Z clear not equal
0010 CS C set unsigned higher or same
0011 CC C clear unsigned lower
0100 MI N set negative
0101 PL N clear positive or zero
0110 VS V set overflow
0111 VC V clear no overflow
1000 HI C set and Z clear unsigned higher
1001 LS C clear or Z set unsigned lower or same
1010 GE N equals V greater or equal
1011 LT N not equal to V less than
1100 GT Z clear AND (N equals V) greater than
1101 LE Z set OR (N not equal to V) less than or equal
1110 AL (ignored) always