Modos de Endereçamento da família MC8051

13
Modos de Endereçamento da família MC8051 By: Ivan Ney Alvizuri Romani UNIP – Verão 2010

description

Modos de Endereçamento da família MC8051. By: Ivan Ney Alvizuri Romani UNIP – Verão 2010. Modos de endereçamento das Instruções da família MC8051:. Registrador Direto Indireto Imediato Relativo Absoluto Longo Indexado. Endereçamento por Registrador. - PowerPoint PPT Presentation

Transcript of Modos de Endereçamento da família MC8051

Page 1: Modos de Endereçamento da família MC8051

Modos de Endereçamento da família MC8051

By: Ivan Ney Alvizuri Romani

UNIP – Verão 2010

Page 2: Modos de Endereçamento da família MC8051

Modos de endereçamento das Instruções da família MC8051:

• Registrador

• Direto

• Indireto

• Imediato

• Relativo

• Absoluto

• Longo

• Indexado

Page 3: Modos de Endereçamento da família MC8051

Endereçamento por Registrador

• As instruções fazem uso dos registradores internos (Rn) do microcontrolador.

Exemplo: add A, R1

Soma o conteúdo do acumulador “A” com o conteúdo do R1, o resultado é armazenado em “A”.

• Este tipo de instrução é codificado em 1 byte

Page 4: Modos de Endereçamento da família MC8051

Endereçamento Direto

• As instruções fazem uso dos registradores internos pelo seu nemônico o seu endereço absoluto.

Exemplos:

a) mov A, P2 ; move para A o conteúdo do

registrador P2. b) mov A, 20h ; move para A o conteúdo do

registrador interno de endereço 20h.

• Este tipo de instrução é codificado em 2 byte

Page 5: Modos de Endereçamento da família MC8051

Endereçamento Indireto

• As instruções fazem uso dos registradores R0 ou R1 para se referir a outra posição de memória.

• “@” indica que a operação é de endereço indireto.

• Exemplo - suponha que o endereço 40h contenha o valor 18 e o R0 contenha o valor 40. Logo para a instrução:

mov A, @R0

movo para A o conteúdo da memória apontada por R0 (40h). Assim A é carregado com valor 18 (A=18h).

• Este tipo de instrução é codificado em 1 byte

Page 6: Modos de Endereçamento da família MC8051

Endereçamento Imediato

• Neste tipo o código de instrução já é codificado junto com uma constante, chamado “dado imediato”.

• O sinal “#” indica um operando de tipo imediato.

Exemplos:

a) mov A, #1Bh ; move para A o valor 1B em

hexadecimal.

b) mov A, #00011111b ; move para A o valor

00011111.

• Este tipo de instrução é codificado em 2 ou 3 bytes.

Page 7: Modos de Endereçamento da família MC8051

Endereçamento Relativo

• É utilizada em instruções que permitem realizar um “pulo” direto no decorrer do programa.

• O endereço relativo (“offset”) é um dado de 8 bits com sinal.

• O offset especificado na instrução é somado ao conteúdo do PC (contador de programa), obtendo-se assim o endereço efetivo.

• Este tipo de instrução é codificado em 2 bytes.

Page 8: Modos de Endereçamento da família MC8051

Endereçamento Relativo

• Exemplo:

Page 9: Modos de Endereçamento da família MC8051

Endereçamento Absoluto

• As instruções ACALL e AJMP utilizam de endereço absoluto. Composição de código:

Page 10: Modos de Endereçamento da família MC8051

Endereçamento Absoluto

Page 11: Modos de Endereçamento da família MC8051

Endereçamento Absoluto

- Essas instruções são de 2 bytes.

Page 12: Modos de Endereçamento da família MC8051

Endereçamento Longo

• As instruções LCALL e LJMP usam este tipo de endereçamento.

• Permitem endereçamento de 16 bits que mapeia todo o espaço disponível de endereços (64kbytes).

• Uma desvantagem destas instruções é que consomem 3 bytes de programa.

Page 13: Modos de Endereçamento da família MC8051

Endereçamento Indexado• As instruções que usam este tipo

endereçamento são JMP ou MOVC em uma de suas formas.

• O endereço de destino depende não só do endereço inserido na instrução, mas também do valor de A nesse instante.Exemplo:

jmp @ A+DPTR

Salta para a posição dada por (DPTR + A). Aqui A pode ser um contador de passos e o DPTR um ponteiro de faixas.