Dados os seguintes valores de memória e uma máquina de um endereço com um acumulador, quais valores as instruções a seguir carregam no acumulador?
Palavra 20 contém 40.
Palavra 30 contém 50.
Palavra 40 contém 60.
Palavra 50 contém 70.
CARREGAR IMEDIATO 20
CARREGAR DIRETO 20
CARREGAR INDIRETO 20
CARREGAR IMEDIATO 30
CARREGAR DIRETO 30
CARREGAR INDIRETO 30
Palavra 20 contém 40.
Palavra 40 contém 60.
Palavra 50 contém 70.
CARREGAR DIRETO 20
CARREGAR INDIRETO 20
CARREGAR IMEDIATO 30
CARREGAR DIRETO 30
CARREGAR INDIRETO 30
Passo 1
O enunciado dá valores de memória e pede para dizer que valor cada instrução carrega no acumulador. Dados fornecidos (copiados do enunciado):
As instruções para as quais precisamos encontrar o valor carregado no acumulador são, nessa ordem:
Passo 2
Rápida explicação do que é o acumulador e o que significa “carregar” (sem pular etapas):
- O acumulador (vou chamar de
) é um registrador da CPU que guarda o valor com o qual as instruções seguintes vão operar. - “Carregar” significa colocar um valor no
. A diferença está em como interpretamos o operando (o número que segue a instrução): ele pode ser um valor literal, um endereço para buscar um valor, ou um endereço que aponta para outro endereço.
Passo 3
Definição e regra do modo imediato (como interpretar a instrução):
- Em modo imediato, o operando é usado como valor literal. Em notação:
- Ou seja, se a instrução é
, o acumulador recebe exatamente .
Agora aplico ao primeiro caso:
Passo 4
Definição e regra do modo direto (também chamado absoluto):
- Em modo direto, o operando é um endereço de memória. A regra é:
onde
é o conteúdo da palavra na posição de memória
.
- Exemplo: se
, então faz .
Aplico ao caso:
- Do enunciado sabemos que
. Portanto
Passo 5
Definição e regra do modo indireto:
- Em modo indireto, o operando é um endereço que contém outro endereço; devemos primeiro ler o conteúdo desse endereço (que será um novo endereço) e só então ler a memória naquele novo endereço. A regra é:
- Em palavras: leia
, isso dá um endereço ; então leia e carregue no .
Aplico ao caso com operando
:
- Pelo enunciado
. Então primeiro passo: . - Em seguida lemos
. Pelo enunciado . - Logo
Passo 6
Agora repito os mesmos três modos, mas com o operando
. Primeiro modo imediato:
Passo 7
Modo direto com operando
:
- Do enunciado
. Então
Passo 8
Modo indireto com operando
:
- Primeiro
, então o endereço apontado é . - Em seguida lemos
. Pelo enunciado . - Assim
Resposta
CARREGAR IMEDIATO 20:
CARREGAR DIRETO 20:
CARREGAR INDIRETO 20:
CARREGAR IMEDIATO 30:
CARREGAR DIRETO 30:
CARREGAR INDIRETO 30:
CARREGAR DIRETO 20:
CARREGAR INDIRETO 20:
CARREGAR IMEDIATO 30:
CARREGAR DIRETO 30:
CARREGAR INDIRETO 30: