O endereço armazenado no contador de programa é representado pelo símbolo X1. A instrução armazenada em X1 tem uma parte de endereço (referência de operando) X2. O operando necessário para executar a instrução é armazenado na palavra de memória com endereço X3. Um registrador indexador contém o valor X4. Qual é a relação entre essas diversas grandezas se o modo de endereçamento for
direto?

Passo 1

O enunciado dá as seguintes informações:
  • O contador de programa (PC) contém o endereço da instrução: X_1.
  • A instrução armazenada em X_1 tem um campo de referência de operando (parte de endereço) igual a X_2.
  • O operando necessário para executar a instrução está armazenado na palavra de memória com endereço X_3.
  • Um registrador indexador contém o valor X_4.
O que o problema pede: determinar a relação entre X_1, X_2, X_3 e X_4 quando o modo de endereçamento é direto.

Passo 2

Vamos entender o que significa “endereçamento direto” de forma bem prática e sem enrolação. Em endereçamento direto, o campo de endereço dentro da instrução já contém o endereço efetivo (o endereço real) da palavra de memória que guarda o operando. Ou seja, não há cálculo adicional: o valor presente no campo de endereço da instrução é exatamente o endereço onde está o operando.
Formalizando este conceito com um símbolo comum em arquitetura:
EA = X_2
onde EA é o endereço efetivo (Effective Address) usado para localizar o operando na memória. Aqui eu estou dizendo: o campo de endereço da instrução (que é X_2) é igual ao endereço efetivo.

Passo 3

Como o enunciado diz que o operando está na palavra de memória com endereço X_3, e pelo conceito de endereçamento direto o endereço efetivo é X_2, segue-se que o endereço onde o operando realmente está ( X_3) é igual ao endereço efetivo ( X_2). Portanto:
X_3 = X_2
Explicação em palavras: a CPU lê a instrução em X_1, vê no campo de endereço o valor X_2 e vai buscar na memória a posição de endereço X_2. Como o enunciado chama de X_3 o endereço onde o operando está, temos X_3 = X_2.

Passo 4

Sobre X_1 e X_4:
  • X_1 é apenas o endereço da instrução (PC apontando para a instrução). Em endereçamento direto, X_1 serve para localizar a instrução, mas não entra no cálculo do endereço do operando. Logo não há relação aritmética entre X_1 e X_3 imposta pelo modo direto.
  • X_4 é o conteúdo do registrador indexador. No modo direto o indexador não é usado para formar o endereço efetivo. Assim, X_4 também não participa do cálculo; ele é irrelevante para a relação entre X_2 e X_3.
Para ajudar a fixar: se fosse endereçamento indexado, aí sim teríamos algo como X_3 = X_2 + X_4. Mas no modo direto isso não vale.

Passo 5

Exemplo numérico rápido (só para visualizar): suponha X_1 = 100, X_2 = 200 e X_4 = 5. Em endereçamento direto a CPU busca o operando em memória no endereço 200, logo X_3 = 200. O valor de X_4 não altera nada.

Resposta

X_3 = X_2
O registrador indexador X_4 não participa (não é usado)

Exercícios relacionados