As informações apresentadas nesta parte do tutorial, em relação ao formato das instruções, não são
necessárias para o estudo da linguagem assembly ARM, exceto a tabela de condições, sendo apresentadas
apenas como complemento e introdução às instruções que serão estudadas.
A arquitetura arm v4 possui ao todo 21 formatos de instruções que compreendem os grupos: processamento
de dados, multiplicação, movimentação de dados, branch, load e store, swap, coprocessador e interrupção
de software.
As instruções ARM tem um tamanho de 32-bits e são divididos em partes como mostrado no exemplo abaixo.
Essas partes mudam de acordo com o grupo de instrução, modo de endereçamento e outros.
Tab. 1: Exemplo de instrução
31..28 |
27 |
26 |
25 |
24..21 |
20 |
19..16 |
15..12 |
11..0 |
cond |
0 |
0 |
I |
opcode |
S |
Rn |
Rd |
shift_op |
Onde
- cond: condição para execução
- I: modo de endereçamento
- opcode: código da instrução
- S: atualização de flags
- Rn: Primeiro operando
- Rd: Registrador de destino
- shift_op: segundo operando
Essas partes mudam de acordo com o grupo de instrução, modo de endereçamento e outros. Em
modos de endereçamento e quando as instruções forem abordadas, mais
formatos serão vistos.