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 |