Post on 14-Jul-2020
EA869 Modos de Endereçamento – ATMega328P
Faculdade de Engenharia Elétrica e de Computação (FEEC)
Universidade Estadual de Campinas (UNICAMP)
Prof. Levy Boccato
1
Introdução Toda informação a ser manipulada por um processador está armazenada em
algum local do sistema de computação.
Alguns exemplos de localidades: a própria instrução; registradores; a memória de dados.
As diferentes maneiras de referenciar um dado, ou, analogamente, as diferentes formas de acessar informações no sistema definem os chamados modos de endereçamento.
Perspectiva do programador:
Ao escrever uma instrução Assembly, precisamos conhecer os modos de endereçamento disponíveis para sabermos como referenciar adequadamente os dados que devem ser manipulados.
Perspectiva do processador:
Ao ler uma instrução da memória de programa, o processador extrai da cadeia binária não apenas qual a operação que deve ser realizada (e.g., adição), mas também onde estão localizados os operandos.
2
Introdução Definições básicas:
3
Modo direto Modo indireto O endereço efetivo está na própria instrução. Isto é, o valor que participará da operação está armazenado no próprio operando especificado na instrução.
O endereço efetivo está armazenado no endereço especificado na instrução. Em outras palavras, o conteúdo do endereço indicado na instrução corresponde ao endereço efetivo do dado a ser utilizado.
CO END-b
MEMÓRIA
operando EE
CO END-b
MEMÓRIA
EE
operando
Endereço Efetivo (EE) É o endereço real, ou final, de um dado a ser manipulado
ATMega328P Registrador direto:
4
ATMega328P Imediato:
Exemplo: ANDI r17, 0xf8
Formato da instrução:
5
0111 1111 0001 1000
7 f 1 8
ATMega328P Registrador direto:
6
ATMega328P I/O direto:
7
ATMega328P Dado direto:
8
ATMega328P Dado indireto com deslocamento:
9
ATMega328P Dado indireto:
10
ATMega328P Dado indireto com pré-decremento:
11
ATMega328P Dado indireto com pós-incremento:
12
ATMega328P Memória de programa – Instruções LPM, ELPM e SPM:
13
ATMega328P Memória de programa com pós-incremento – LPM Z+ e ELPM Z+ :
14
ATMega328P Memória de programa direto – JMP e CALL:
15
ATMega328P Memória de programa indireto – IJMP e ICALL:
16
ATMega328P Memória de programa relativo – RJMP e RCALL:
17