Arquitetura ARM Registradores e Endereamento ARM 7 TDMI
- Slides: 13
Arquitetura ARM Registradores e Endereçamento
ARM 7 TDMI
Organização dos Registradores ARM possui 37 registradores, todos de 32 bits. Para cada modo de operação, um subconjunto desses registradores é utilizado. r 0 r 1 r 2 r 3 r 4 r 5 r 6 r 7 r 8 r 9 r 10 r 11 r 12 r 13 (sp) r 14 (lr) r 15 (pc) Registradores de propósito geral Ponteiro da Pilha Guarda endereço de retorno de sub-rotina Contador de Programa cpsr Registrador de Estado spsr Cópia do Registrador de Estado
Modos de Endereçamento • Breve revisão sobre as instruções: Instruções LOAD/STORE Três tipos de instruções Instruções de Processamentos de Dados Instruções de Desvio Máquina de 3 Operandos: CO{COND} OPER 1 OPER 2 OPER 3 {DESLC}
Modos de Endereçamentos Imediato Registrador Instruções de desvio Deslocamento Instruções Processamento de dados Onde estão os dados? Pré-Indexado Pós-Indexado Instruções LOAD/STORE
Modos de Endereçamento Equivale a qual modo de Imediato endereçamento visto em aula? Imediato CO Rd , Rf , #dado Exemplo: ADD R 1 , R 2 , #4 R 1 ← (R 2) + 4 Por Registrador CO Rd , Rf 1 , Rf 2 Exemplo: MOV R 2 , R 1 R 2 ← (R 1) Equivale a qual Registrador modo de endereçamento direto visto em aula?
Modos de Endereçamento Equivale a qual modo de Depende! endereçamento visto em aula? Deslocamento CO Rd , [Rb , +/-offset] Valor Absoluto ou um Registrador Base Exemplo: STR R 0 , [R 1 , #-3] (R 1) – 3 ← (R 0) R 1 5 Memória + 0 Offset -3 1 2 10 R 0 10
Modos de Endereçamento • Se o offset for 0, teremos o equivalente a: LDR R 2 , [Rb] R 2 ← ((RB)) Registrador Indireto • Se o offset for o registrador R 1, teremos o equivalente a: LDR R 2 , [Rb, R 1] R 2 ← ((R 1) + (Rb)) Baseado e Indexado • Se o offset for um imediato, teremos o equivalente a: LDR R 2 , [Rb, #50] R 2 ← (50 + (Rb)) Indexado direto
Modos de Endereçamento Pré-Indexado CO Rd , [Rb , +/-offset]! Exemplo: LDR R 0 , [R 1 , #2]! Equivale a qual Auto-incremento modo de com incremento endereçamento visto em aula? variado R 0 ← ((R 1) + 2) R 1 ← (R 1) + 2 R 1 2 Offset 2 Memória + 0 1 2 10 R 0 10
Modos de Endereçamento Pós-Indexado CO Rd , [Rb] , +/-offset Exemplo: STR R 0 , [R 1] , #1 Equivale a qual modo de Auto-incremento endereçamento visto em aula? (R 1) ← (R 0) R 1 ← (R 1) + 1 R 1 2 + 1 Offset Memória 0 1 2 10 R 0 10
Modos de Endereçamento Dos modos de endereçamento vistos em aula, qual não é possível representar no ARM? Endereçamento Absoluto! PARA ACESSAR A MEMÓRIA, É SEMPRE NECESSÁRIO O USO DE [ ] E REGISTRADORES!
Modos de Endereçamento Onde estão os dados? Alguns Exemplos LDRB R 5, [R 9] R 5 ← {byte}((R 9)) ADD R 3, R 2, R 1, LSL#3 R 3 ← R 2 + R 1*23 STR R 2 , [R 1] , R 3 (R 1) ← (R 2) R 1 ← (R 1) + (R 3) LDR R 0 , [R 1 , #4]! R 0 ← ((R 1) + 4) R 1 ← (R 1) + 4
Créditos Ø Este material está baseado nas notas de aula elaboradas pelo Prof. Léo Pini e pelo aluno de doutorado Tiago Novaes.