>> Tecnologia Eletrônica >  >> Áudio Residencial >> Amplificadores

Formatos de Instrução e Modos de Endereçamento ARM7: Esclarecimento

Conjunto de Instruções ARM7TDMI: Formatos vs. Modos de Endereçamento

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.

Modos de Endereçamento ARM7 (para Load/Store & Processamento de Dados)

1. Modos de Endereçamento Load/Store (LDR/STR)

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

2. Endereçamento Operand2 de Processamento de Dados (Shifts)

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)

Categorias de Formato de Instrução (O que Você Listou)

Suas 6 categorias estão corretas para grupos de formato de instrução:

  1. Processamento de Dados (operações ALU: ADD, SUB, AND, EOR, MOV, CMP...)
  2. Multiplicação (MUL, MLA, UMULL, SMULL, UMLAL, SMLAL)
  3. Swap (SWP, SWPB) — acesso atômico à memória
  4. Load/Store (LDR, STR, LDM, STM, LDRH, STRH, LDRSB, LDRSH)
  5. Branch (B, BL, BX, BLX)
  6. Coprocessador / Sistema (CDP, LDC, STC, MCR, MRC, MSR, MRS, SWI/SVC)

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.

Estado Thumb (16-bit) Endereçamento

  • Subconjunto: Offset imediato (5-bit), Offset de registrador (sem shift), Relativo a SP, Relativo a PC.
  • Sem writeback pré/pós-indexado em Thumb (exceto LDM/STM).