Dados os valores de memória abaixo e uma máquina de arquitetura de 1-endereço com Acumulador, que valores as instruções abaixo carregam no Acumulador?
palavra 20 contém 40
palavra 30 contém 50
palavra 40 contém 60
palavra 50 contém 70
e. LOAD DIRECT 30

Passo 1

O enunciado pede: “Dados os valores de memória abaixo e uma máquina de arquitetura de 1-endereço com Acumulador, que valores as instruções abaixo carregam no Acumulador?” e fornece os dados de memória e a instrução a executar.
Dados fornecidos (peguei estes valores do enunciado):
  • palavra 20 contém 40.
  • palavra 30 contém 50.
  • palavra 40 contém 60.
  • palavra 50 contém 70.
Instrução a analisar:
  • \text{LOAD DIRECT } 30

Passo 2

O que é uma máquina de “1-endereço com Acumulador”?
  • Existe um registrador especial chamado Acumulador, que vou chamar de AC. É onde a maioria das operações aritméticas e de carga/armazenamento ocorre.
  • Instruções desse tipo costumam ter o formato: opcode + campo-endereço. O campo-endereço indica um endereço de memória relacionado à operação.
Explicação dos modos de endereçamento importantes (para entender a diferença):
  • Endereçamento direto (“DIRECT”): o número no campo-endereço é o endereço de memória onde está o dado a ser usado. Ex.: \text{LOAD DIRECT } 30 significa: vá à palavra de memória no endereço 30 e carregue seu conteúdo em AC.
  • Endereçamento imediato (“IMMEDIATE”): o número no campo-endereço é o próprio valor a ser carregado, não um endereço. Ex.: \text{LOAD IMMEDIATE } 30 colocaria o valor 30 em AC.
  • Endereçamento indireto (“INDIRECT”): o campo-endereço aponta para uma palavra de memória que contém outro endereço; o conteúdo é buscado nesse segundo endereço. Ex.: se palavra 30 contém 50, então \text{LOAD INDIRECT } 30 buscaria a palavra no endereço 50.

Passo 3

Especificamente para \text{LOAD DIRECT } 30: o passo de execução (modo fetch–execute simplificado) é:
  1. Ler o campo-endereço da instrução: é 30.
  2. Acessar a memória no endereço 30.
  3. Copiar o conteúdo da palavra de memória endereço 30 para o registrador AC.

Passo 4

Usando os dados do enunciado: a palavra no endereço 30 contém 50. Ou seja, do enunciado pegamos explicitamente que palavra 30 contém 50.
Aplicando isso ao passo de execução: ao executar \text{LOAD DIRECT } 30 a máquina vai ler a palavra em 30 (que é 50) e colocá-la no AC. Portanto, após a instrução, AC passa a conter 50.

Resposta

AC = 50

Exercícios relacionados