Modo Enderecamento

Muitas das instruções do microprocessador Z80 operam com dados armazenados nos registos internos de CPU, na memória externa ou nos portos de entrada-saída. Os modos de endereçamento dizem respeito a’ maneira como o endereço é gerado em cede instrução:

 

Imediato (Imediate)

Neste modo de endereçamento é o byte que se segue ao código de operação na memória que contém o operando.

 

  Um exemplo deste tipo de instruções será o carregamento (LOAD) do acumulador com uma constante que se encontre no byte imediata­mente a seguir ao código de operação.

Uma extensão deste tipo de endereçamento é o caso de Os dois bytes seguintes ao código de opereção serem o operando.  

  Um exemplo deste tipo de instruções será o carregamento do par de registos HL1 formando um registo de 16 bits, com dois bytes de dados. o destino do dado fornecido faz parte do código de operação.

 

Relativo (Relative Addressing)

Este tipo de endereço utiliza o byte de dados que se segue ao código de operação para especificar o numero de posições de memória para um salto na sequência do programa. o endereço final é igual a soma deste byte com o valor do endereço do código de operação seguinte:

O código de operação da instrução seguinte a de salto relativo está na célula de memória cujo endereço é A. O byte que faz parte da instrução de salto relativo tem o valor B. Então, o programa ao executar a instrução de salto relativo faz com que o conteúdo do contador de pro­grama seja igual a A+B. e a instrução armazenada nesta posição de memória que o microprocessador vai executar em seguida. o salto pode ser para posições mais avançadas ou mais recuadas na memória porque o salto é especificado em complemento para 2. Com 8 bits podemos apontar para 127 posições posteriores e 128 posições anterio­res.

 

Directo (Extended Address)

O endereçamento directo é conseguido a partir dos dois bytes que se seguem ao código de operação. Estes dois bytes de dados tanto podem especificar um endereço de memória, onde se encontra armaze­nada uma palavra de dados, como um endereço para onde o processa­mento do programa deve saltar:

  O endereçamento directo é utilizado quando o programa requer um salto de uma posição de memória para outra e quando se pretende extrair ou armazenar dados numa posição de memória. Isto significa que Os dois bytes de endereço funcionam como um ponteiro da memória.

 

Indexado (indexed Addressing)

  Neste modo de endereçamento o byte de dados que se segue ao código de operação contém um valor de base que, somado ao conteúdo de um dos registos de índice (código de operação

especifica qual deles), fornece o endereço final. o conteúdo do registo de índice não sofre alterarão:

Um exemplo de uma instrução que utiliza endereçamento indexado será carregar o acumulador com o conteúdo da posição de memória cujo endereço é dado pela soma do byte de dados da instrução inde­xada com um registo de índice. A base de endereço pode ser um nú­mero positivo ou negativo (em complemento para dois).

O microprocessador Z80 possui dois registos de índice designados por IX e IY. Para se indicar que o endereço é indexado usar-se-á a notação (Ix + d) ou (Iy + d). A letra d especifica o valor de base que se segue ao código de operação e por vezes aparece na forma disp como na tabela de operações do Z80 da lição anterior.

O endereçamento indexado distingue-se do endereçamento relativo porque é utilizado um registo de índice em vez do contador de pro­grama.

 

Indirecto com Registos

Os registos de uso geral da CPU, quando associados aos pares (tais como o HL), podem ser utilizados como ponteiro de qualquer posição de memória. Este tipo de instrução é muito poderoso e é utilizado numa grande gama de aplicações:  

Um exemplo de instruções deste tipo será o carregamento do acumulador com o conteúdo da posição de memória apontada pelo par HL. Muitas vezes o endereçamento indirecto com registos é utilizado para especificar um operando de 16 bits (cada posição de memória contém 8 bits). Neste caso o conteúdo do registo aponta o byte de menor or­dem do operando, sendo o registo automaticamente incrementado para se obter o byte de maior ordem.

Existem instruções que podem utilizar dois tipos diferentes de endereçamento. Por exemplo, uma instrução de carregamento (Load) pode utilizar o endereçamento imediato para especificar a fonte e o endereçamento indexado ou indirecto para obter o destino.

 

<-- Voltar

Hosted by www.Geocities.ws

1