Escreva um conjunto de instruções para fazer o Computador Simplificado (CS) somar dois valores (contidos em dois cartões) e subtrair de um terceiro valor (contido num terceiro cartão) e imprimir o resultado. Lembre-se que para executar as instruções é preciso atribuir valores aos cartões que estão na bandeja.
Passo 1
Beleza, o enunciado pede pra gente criar um “programinha” pro nosso Computador Simplificado (CS) que faça isso: pegue dois valores de dois cartões, some eles, depois subtraia de um terceiro cartão e, por fim, imprima o resultado. Isso entra na matéria de Arquitetura de Computadores (versão simplificada) – a gente vai usar instruções básicas estilo LDA (load), ADD (add), SUB (subtract) e OUT (output). Também precisamos saber como “carregar” valores nos cartões que ficam na bandeja, porque o CS vai ler esses endereços de memória.
Passo 2
Primeiro, coloque na bandeja três cartões com os valores que você quer trabalhar. Vamos chamar de:
• Cartão 1 (endereço 1): valor
• Cartão 2 (endereço 2): valor
• Cartão 3 (endereço 3): valor
Por exemplo, se quiser calcular , coloca 7 no cartão 1, 5 no cartão 2 e 3 no cartão 3. Esses cartões são como células de memória numeradas: endereço 1, 2 e 3.
• Cartão 1 (endereço 1): valor
• Cartão 2 (endereço 2): valor
• Cartão 3 (endereço 3): valor
Por exemplo, se quiser calcular
Passo 3
Agora o programa vai fazer exatamente a expressão
A gente usa o registrador “acumulador” do CS, que é onde rolam as contas passo a passo:
- LDA 1 → carrega no acumulador o valor de endereço 1 (
). - ADD 2 → soma ao acumulador o valor de endereço 2 (
). - SUB 3 → subtrai do acumulador o valor de endereço 3 (
). - OUT → imprime o que estiver no acumulador.
Teoria rápida:
- LDA (Load Accumulator): traz um valor da memória pra nossa “caixinha” do acumulador.
- ADD (Add Memory): faz acumulador ← acumulador + (memória).
- SUB (Subtract Memory): faz acumulador ← acumulador – (memória).
- OUT (Output): manda imprimir o conteúdo do acumulador.
Resposta
Coloque na bandeja:
Endereço 1 ←
Endereço 2 ←
Endereço 3 ←
Endereço 1 ←
Endereço 2 ←
Endereço 3 ←
Programa do CS:
LDA 1 ; acumulador = C1
ADD 2 ; acumulador = C1 + C2
SUB 3 ; acumulador = C1 + C2 - C3
OUT ; imprime o resultado