Arquitetura ARM Registradores e Endereamento ARM 7 TDMI

  • Slides: 13
Download presentation
Arquitetura ARM Registradores e Endereçamento

Arquitetura ARM Registradores e Endereçamento

ARM 7 TDMI

ARM 7 TDMI

Organização dos Registradores ARM possui 37 registradores, todos de 32 bits. Para cada modo

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

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

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

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

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

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

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

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

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]

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

Créditos Ø Este material está baseado nas notas de aula elaboradas pelo Prof. Léo Pini e pelo aluno de doutorado Tiago Novaes.