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
f. LOAD INDIRECT 30
palavra 20 contém 40
palavra 30 contém 50
palavra 40 contém 60
palavra 50 contém 70
f. LOAD INDIRECT 30
Passo 1
O enunciado pergunta: “O que a instrução LOAD INDIRECT
carrega no Acumulador?” As informações dadas sobre a memória são:
- a palavra
contém ; - a palavra
contém ; - a palavra
contém ; - a palavra
contém .
Passo 2
Vamos entender bem o que é uma máquina de 1-endereço com Acumulador e o que significa cada modo de endereçamento, porque isso aparece direto em prova.
- Em uma máquina de 1-endereço com Acumulador, quase todas as instruções operam sobre o Acumulador (ACC): por exemplo, LOAD carrega um valor no ACC, ADD soma ao ACC, etc.
- Endereçamento direto (normalmente escrito LOAD
) significa: ler da memória no endereço e colocar esse valor no ACC. - Endereçamento indireto (escrito LOAD INDIRECT
ou LOAD ( )) significa: primeiro ler da memória o conteúdo do endereço ; esse conteúdo é tratado como um endereço efetivo ; depois ler da memória no endereço e colocar esse valor no ACC.
Resumo prático: LOAD INDIRECT
faz duas leituras de memória em cadeia — primeiro em
para obter o ponteiro, depois no ponteiro para obter o dado final.
Passo 3
Para formalizar e ficar claro durante a prova, é útil usar notação. Defina
como o conteúdo da palavra de memória no endereço
. Então:
A instrução LOAD INDIRECT
realiza:
-
(leitura do ponteiro) - ACC :=
(leitura do dado no endereço e carregar no Acumulador)
Passo 4
Execute o passo 1 da instrução: ler o conteúdo da palavra em
.
Usando os dados fornecidos,
Isso significa que a palavra em
contém o endereço
, que será usado como endereço efetivo.
Passo 5
Execute o passo 2 da instrução: ler o conteúdo da palavra no endereço efetivo
.
Usando os dados fornecidos,
Portanto o dado final a ser carregado é
.
Passo 6
Concluir a ação do LOAD INDIRECT
: o Acumulador recebe o valor lido em
, ou seja,
Passo 7
Dica rápida para a prova (como evitar erro comum): muitos alunos confundem LOAD INDIRECT com LOAD direto ou com LOAD imediato. Para checar rapidamente em prova:
- Se a instrução fosse LOAD
, a resposta seria . - Se fosse LOAD INDIRECT
, como aqui, é preciso ainda uma leitura extra: .
Sempre verbalize para si mesmo “ler ponteiro depois ler dado” — ajuda a não pular o passo.