EA-869 - Dúvidas Frequentes

EA-869 - Dúvidas Frequentes

Capítulo IV (06.03.2006)


(Ting - 2s97; Léo - 1s2006)

Uma instrução pode conter mais de um modo de endereçamento?

São equivalentes o modo de endereçamento PAGINADO e o modo de endereçamento BASEADO?

É possível estimar o número de acessos à memória durante o ciclo de instrução de uma instrução pelo modo de endereçamento do(s) seu(s) campo(s) de endereço?

Qual é a vantagem de utilizar instruções de desvio com modo de endereçamento relativo sobre instruções de desvio com modo de endereçamento absoluto?

Dê um exemplo numérico de modos de endereçamento.

Dê um exemplo de modos de endereçamento de uma máquina real.

Considerações adicionais para exercícios 2 a 8 do Capítulo.


Uma instrução pode conter mais de um modo de endereçamento? (Ting - 2s97)

    Sim. O modo de endereçamento define como o conteúdo de um campo de endereço deve ser interpretado - como deslocamento, endereço de memória, endereço de registrador ou endereço-base. Para máquinas de mais de um endereço, ou seja, com mais de um campo de endereço, pode-se normalmente especificar distintamente o modo de endereçamento de cada campo de endereço.

São equivalentes o modo de endereçamento PAGINADO e o modo de endereçamento BASEADO? (Ting - 2s97; Léo - 1s98)

    Não, embora ambos os modos de endereçamento interpretem o conteúdo do campo de endereço como o deslocamento em relação ao conteúdo de um registrador de base. A diferença básica é que, no modo de endereçamento PAGINADO, o conteúdo do registrador de base corresponde ao número de página e ele é concatenado ao conteúdo do campo de endereço da instrução. Essa concatenação pode ser implementada através de um deslocamento (para esquerda) do conteúdo do registrador de página e uma soma com o conteúdo do campo de endereço. Por outro lado, no modo de endereçamento BASEADO, o registrador base contém o endereço base que será adicionado ao deslocamento (contido no campo de endereço da instrução).

É possível estimar o número de acessos à memória durante o ciclo de instrução de uma instrução pelo modo de endereçamento do(s) seu(s) campo(s) de endereço? (Ting - 2s97)

    Sim. Vimos que um ciclo de instrução compreende o ciclo de busca, a decodificação e o ciclo de execução. O ciclo de busca requer um acesso à memória para obter o código de operação e os modos de endereçamento. O número de acessos adicionais à memória depende do modo de endereçamento de cada campo de endereço. Por exemplo, para endereçamento

Qual é a vantagem de utilizar instruções de desvio com modo de endereçamento relativo sobre instruções de desvio com modo de endereçamento absoluto? (Ting - 2s97)

    Os conteúdos dos campos de endereço das instruções com modo de endereçamento absoluto precisam ser atualizados cada vez que o programa for carregado em um espaço de memória distinto; enquanto os conteúdos dos campos de endereço das instruções com modo de endereçamento relativo permanecem inalterados pois, neste caso, os endereços efetivos são calculados em tempo de execução em função do valor corrente do PC. O programa cuja execução independe do espaço de memória em que ele é carregado é denominado relocável.

Dê um exemplo numérico de modos de endereçamento. (Ting - 2s97; alterado por Léo - 1s2006)

    Suponhamos os registradores PC, R1, RIX e um espaço de memória com os seguintes conteúdos:
    Após a execução da instruçã LOAD end armazenada no endereço 200 (observe que a instrução ocupa duas palavras e contém três campos - C.O., modo e campo de endereço), o conteúdo do registrador Acc dependerá do modo de endereçamento conforme a seguinte tabela.
    Modo de Endereçamento Endereço Efetivo (Acc)
    Absoluto direto 500 700
    Absoluto indireto 700 350
    por Registrador R1 (*) R1 400
    Indireto por Registrador R1 (*) 400 700
    Pós-Incremento (com uso de R1)(*) 400 (e (R1)=401) 700
    Pré-Decremento (com uso de R1)(*) 399 ( e (R1)=399) 450
    Imediato 201 500
    Relativo 702 325
    Baseado (RIX) 600 900
    Indexado Direto (RIX) 600 900
    Indireto Pré-Indexado (RIX) 900 200
    Indireto Pós-Indexado (RIX) 800 300
(*) Notar que nestes casos deixa de ter sentido a 2. palavra da instrução (com conteúdo 500)

Dê um exemplo de modos de endereçamento de uma máquina real.
(
Ting - 2s97; Léo - 1s98)

    Consideremos a família M68000 da Motorola que vocês utilizarão no curso EA-870 (neste curso será usado o Microcontrolador M68HC11, com repertório de instruções mais simples do que o aqui apresentado).
    Sob o ponto de vista do programador usuário (user programmer), a família M68000 da Motorola é uma máquina de 2 endereços e oferece 16 registradores de 32 bits de uso geral - 8 registradores de dados (D0-D7) e 8 registradores de endereço (A0-A6), 1 contador de programa de 32 bits e 1 registrador de 8 bits para bits de condição.
    Com uso destes registradores são implementados 14 modos de endereçamento com as seguintes codificações (o formato de instrução contém um campo de modo e um campo de endereço para cada operando):
    Modo de Endereçamento Endereço Efetivo Código no campo de modo Código no campo de endereço
    Endereçamento Direto por Registrador (de Dado) EE = Dn 000 endereço do registrador
    Endereçamento Direto por Registrador (de Endereço) EE = An 001 endereço do registrador
    Endereçamento Indireto por Registrador (de Endereço) EE = (An) 010 endereço do registrador
    Endereçamento com Auto(pós)incremento EE = (An); An <- (An)+N; 011 endereço do registrador
    Endereçamento com Auto(pré)decremento An <- (An)-N; EE = (An) 100 endereço do registrador
    Endereçamento Baseado EE = (An)+d 101 endereço do registrador
    Endereçamento com Registradores de Base e Indexador EE = (An)+(RIX)+d 110 endereço do registrador
    Endereçamento Absoluto Direto (Curto) EE = (Próxima palavra) 111 000
    Endereçamento Absoluto Direto (Longo) EE = (Próximas duas palavras) 111 001
    Endereçamento Relativo EE = (PC)+d 111 010
    Endereçamento Relativo Indexado EE = (PC)+(RIX)+d 111 011
    Endereçamento Imediato EE = Próxima(s) palavra(s) 111 100
    Endereçamento Imediato (Rápido) EE = Palavra Corrente 111 100
    Endereçamento Implícito EE= PC, por exemplo - -
    As letras d e N denotam respectivamente o deslocamento e o número de palavras.

    Observe que os registradores de endereço, A0-A7, podem ser utilizados como apontadores de pilhas, como registradores indexadores RIX ou como registradores de base; enquanto os registradores de dado só podem ser utilizados como registradores indexadores RIX.

    Note que, apesar do modo de endereçamento imediato rápido tenha o mesmo código do modo imediato, a máquina consegue diferenciá-lo pelo tipo de operandos que a instrução processa. No modo rápido, o tamanho do operando é 8 bits (tipo Byte) e é codificado na mesma palavra do código de operação (nenhum acesso adicional à memória é necessário). No outro modo, o tamanho do operando é 16 bits (tipo Word) ou 32 bits (tipo Long Word) e ele é colocado nas palavras subsequentes (acessos adicionais à memória são necessários).

Considerações adicionais para exercícios 2 a 8 do Capítulo. (Ting - 2s97)

    A máquina suporta ainda as duas seguintes instruções:

Atualizado 01/03/2006

Last modified: Fri Oct 10 22:21:13 BRA 1997

Sugestões para leopini@dca.fee.unicamp.br