A lista fornecida (Processamento de Dados, Multiplicação, etc.) descreve categorias/formato de instruções, não modos de endereçamento. O ARM7TDMI (ARMv4T) suporta múltiplos modos de endereçamento dentro desses formatos.
| Modo | Exemplo de Sintaxe | Descrição |
|---|---|---|
| Offset Imediato | LDR R0, [R1, #4] |
Registrador base + imediato unsigned 12-bit (0–4095) |
| Offset de Registrador | LDR R0, [R1, R2] |
Base + registrador (shift opcional: LSL/LSR/ASR/ROR #n) |
| Offset de Registrador Escalado | LDR R0, [R1, R2, LSL #2] |
Base + (registrador × 1/2/4/8) |
| Pré-Indexado (Writeback) | LDR R0, [R1, #4]! |
Atualiza base: R1 ← R1 + offset, depois carrega |
| Pós-Indexado | LDR R0, [R1], #4 |
Carrega da base, depois atualiza base: R1 ← R1 + offset |
| Relativo a PC (Literal Pool) | LDR R0, =0x12345678 |
Assembler coloca constante no literal pool; load relativo a PC |
Usado em ADD, SUB, AND, ORR, EOR, MOV, CMP, ...
| Tipo de Shift | Sintaxe | Exemplo |
|---|---|---|
| Imediato (8-bit rotacionado) | #imm |
MOV R0, #0xFF |
| Registrador (sem shift) | Rm |
ADD R0, R1, R2 |
| Shift Lógico à Esquerda | Rm, LSL #n / Rs |
ADD R0, R1, R2, LSL #2 |
| Shift Lógico à Direita | Rm, LSR #n / Rs |
MOV R0, R1, LSR R2 |
| Shift Aritmético à Direita | Rm, ASR #n / Rs |
CMP R0, R1, ASR #3 |
| Rotação à Direita | Rm, ROR #n / Rs |
ORR R0, R1, R2, ROR #4 |
| Rotação Estendida à Direita | Rm, RRX |
MOV R0, R1, RRX (rotação 1-bit através do Carry) |
Suas 6 categorias estão corretas para grupos de formato de instrução:
Nota: "S.M.L.A" provavelmente refere-se a Signed Multiply Long Accumulate (SMLAL) ou extensões DSP similares (ARMv5TE). ARM7TDMI não tem SMLA; isso é ARM9E/ARM10E/ARM11.
Tecnologia Eletrônica © [www.351231.com]