Ybadoo - Soluções em Software Livre
Turmas
1º Semestre de 2026

Desenvolver um programa monolítico, utilizando instruções rotuladas, sobre a máquina 2_REG, que implemente a função B = (A * 2) - (A / 3).

Calcular os valores da função B, em razão da entrada A.

Os valores da função B, em razão da entrada A
A(A * 2) - (A / 3)B
0(0 * 2) - (0 / 3) = 0 - 00
1(1 * 2) - (1 / 3) = 2 - 02
2(2 * 2) - (2 / 3) = 4 - 04
3(3 * 2) - (3 / 3) = 6 - 15
4(4 * 2) - (4 / 3) = 8 - 17
5(5 * 2) - (5 / 3) = 10 - 19
6(6 * 2) - (6 / 3) = 12 - 210
7(7 * 2) - (7 / 3) = 14 - 212
8(8 * 2) - (8 / 3) = 16 - 214
9(9 * 2) - (9 / 3) = 18 - 315

Identificar o padrão de geração dos valores da função B, em razão da entrada A.

O padrão de geração dos valores da função B, em razão da entrada A
ABDiferença entre BA e BA - 1
00-
12+ 2
24+ 2
35+ 1
47+ 2
59+ 2
610+ 1
712+ 2
814+ 2
915+ 1

Como observado, o padrão de geração dos valores da função B, em razão de A, é:

Atualização dos valores da função B
Atualização da função B
+ 2
+ 2
+ 1

Logo, o programa monolítico, utilizando instruções rotuladas, sobre a máquina 2_REG, que implemente a função B = (A * 2) - (A / 3), pode ser descrito como:

R01: Se a_zero então vá_para R00 senão vá_para R02;
R02: Faça subtrair_a vá_para R03;
R03: Faça adicionar_b vá_para R04;
R04: Faça adicionar_b vá_para R05;
R05: Se a_zero então vá_para R00 senão vá_para R06;
R06: Faça subtrair_a vá_para R07;
R07: Faça adicionar_b vá_para R08;
R08: Faça adicionar_b vá_para R09;
R09: Se a_zero então vá_para R00 senão vá_para R10;
R10: Faça subtrair_a vá_para R11;
R11: Faça adicionar_b vá_para R01;