Considere um processador em cujo conjunto de instruçōes há instruçōes de três operandos. A instruçāo mult multiplica os dois primeiros operandos e armazena o resultado no terceiro operando e add soma os dois primeiros operandos e armazena o resultado no terceiro. Neste processador, o código que corresponde à operaçāo X=(B * C)+D é:
Escolha uma:
a. mult B, C, B mult B, C, C add X, B, C
b. mult B, C, C add D, X, B add B, C, X
  • c. mult B, C, X add D, X, X
    d. mult B, X, X add D, C, X
    e. mult B, C, C add D, B, X

Passo 1

Vamos resumir o que a questão está pedindo e identificar o que precisamos para resolvê-la.
Enunciado Resumido: Temos um processador com instruções de três operandos: mult (multiplica os dois primeiros operandos e armazena no terceiro) e add (soma os dois primeiros operandos e armazena no terceiro). Queremos representar a operação matemática $ X = (B \times C) + D $ usando essas instruções.
Conteúdo da Matéria: Estamos lidando com conjunto de instruções de processadores e como traduzir operações matemáticas para sequências de instruções de máquina.
O que Precisamos: Entender como decompor a operação $ X = (B \times C) + D $ em instruções mult e add com três operandos cada, garantindo que o resultado final seja armazenado na variável $ X $.

Passo 2

Primeiro, vamos quebrar a operação $ X = (B \times C) + D $ em etapas menores.
  1. Multiplicação: Calcular $ B \times C $ e armazenar o resultado em algum lugar temporário.
  2. Adição: Somar o resultado de $ B \times C $ com $ D $ e armazenar o resultado final em $ X $.
Precisamos então mapear essas etapas para as instruções mult e add.

Passo 3

Vamos analisar a primeira instrução: mult.
  • Instrução mult A, B, C: Multiplica $ A \times B $ e armazena o resultado em $ C $.
Aplicando isso à nossa primeira etapa:
  • Multiplicação: $ B \times C $ armazenado em algum temporário, digamos $ T $.
Portanto, a primeira instrução seria:
A times B

Passo 4

Agora, a segunda instrução: add.
  • Instrução add A, B, C: Soma $ A + B $ e armazena o resultado em $ C $.
Aplicando isso à nossa segunda etapa:
  • Adição: $ T + D $ armazenado em $ X $.
Então, a segunda instrução seria:
A + B

Passo 5

No entanto, nas opções fornecidas, não temos uma variável temporária $ T $. Então, precisamos ajustar nossas instruções para usar $ X $ diretamente.
Vamos refazer:
  1. Multiplicação: $ B \times C $ armazenado em $ X $.
    T
  2. Adição: $ X + D $ armazenado em $ X $.
    X

Passo 6

Agora, vamos comparar nossas instruções com as opções fornecidas:
  • A sequência correta que encontramos é: mu< B, C, X add X, D, X
Analisando as opções, a que corresponde a essa sequência é a opção c.

Resposta

c. mult B, C, X add D, X, X

Exercícios relacionados