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?
direto?
Passo 1
O enunciado dá as seguintes informações:
- O contador de programa (PC) contém o endereço da instrução:
. - A instrução armazenada em
tem um campo de referência de operando (parte de endereço) igual a . - O operando necessário para executar a instrução está armazenado na palavra de memória com endereço
. - Um registrador indexador contém o valor
.
O que o problema pede: determinar a relação entre
,
,
e
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:
onde
é 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 é
) é igual ao endereço efetivo.
Passo 3
Como o enunciado diz que o operando está na palavra de memória com endereço
, e pelo conceito de endereçamento direto o endereço efetivo é
, segue-se que o endereço onde o operando realmente está (
) é igual ao endereço efetivo (
). Portanto:
Explicação em palavras: a CPU lê a instrução em
, vê no campo de endereço o valor
e vai buscar na memória a posição de endereço
. Como o enunciado chama de
o endereço onde o operando está, temos
.
Passo 4
Sobre
e
:
-
é apenas o endereço da instrução (PC apontando para a instrução). Em endereçamento direto, 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 e imposta pelo modo direto. -
é o conteúdo do registrador indexador. No modo direto o indexador não é usado para formar o endereço efetivo. Assim, também não participa do cálculo; ele é irrelevante para a relação entre e .
Para ajudar a fixar: se fosse endereçamento indexado, aí sim teríamos algo como
. Mas no modo direto isso não vale.
Passo 5
Exemplo numérico rápido (só para visualizar): suponha
,
e
. Em endereçamento direto a CPU busca o operando em memória no endereço
, logo
. O valor de
não altera nada.
Resposta
O registrador indexador
não participa (não é usado)