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
a. LOAD IMMEDIATE 20

Passo 1

O enunciado fornece os conteúdos de memória (peguei estes números do enunciado):
  • a palavra de endereço 20 contém 40,
  • a palavra de endereço 30 contém 50,
  • a palavra de endereço 40 contém 60,
  • a palavra de endereço 50 contém 70.
A pergunta: para a instrução "LOAD IMMEDIATE 20", que valor é carregado no Acumulador?

Passo 2

Explicando o que é relevante para a questão (devagar, passo a passo): numa máquina de arquitetura de 1-endereço com Acumulador, o Acumulador é o registrador central onde se colocam os operandos para operações aritméticas e de transferência. A instrução LOAD coloca um valor no Acumulador; o detalhe que muda o valor carregado é o modo de endereçamento usado pela instrução.
Diferença entre dois modos comuns (a parte que costuma confundir, explicada com calma):
  • Endereçamento imediato (IMMEDIATE): o operando que vem junto com a instrução é um valor literal. Ou seja, o número escrito após a instrução é o próprio dado a ser carregado no Acumulador.
  • Endereçamento direto (ou por endereço): o operando que vem junto com a instrução é um endereço de memória; então a máquina acessa esse endereço e carrega o conteúdo da memória no Acumulador.
Exemplo ilustrativo:
  • Se a instrução fosse "LOAD IMMEDIATE 20", o valor carregado seria o literal 20.
  • Se a instrução fosse "LOAD 20" (modo direto), o valor carregado seria o conteúdo da palavra de memória no endereço 20. Pelos dados do enunciado, a palavra no endereço 20 contém 40, logo nesse caso seria carregado 40.

Passo 3

Aplicando ao caso dado: a instrução é exatamente "LOAD IMMEDIATE 20". Isso usa endereçamento imediato, portanto o que entra no Acumulador não é o conteúdo da memória no endereço 20, e sim o próprio operando imediato (o número escrito após a instrução).
Conclusão prática (pra você decorar e não confundir na prova): "LOAD IMMEDIATE n" sempre coloca n no Acumulador; "LOAD n" (direto) coloca o conteúdo de memória em endereço n. Aqui, portanto, o Acumulador recebe o valor imediato.

Resposta

20

Exercícios relacionados