You are on page 1of 1

ALGORITMO

00: 00001101; -- load, AC,M1 (cargo M1 al AC)


01: 00101100; -- STORE M1 en memoria(12)
02: 01100000; -- dec acumulado(multiplicador M1)
03: 11000001; -- BNZ, salta una instruccion
04: 11100100; -- JUMP, bucle infinito
05: 10000111; -- CALL, hacia la subrutina que suma P+M2
06: 11100000; -- JUMP, hacia el inicio
-- Inicio de subrutina
07: 00101101; -- STORE, AC en M1
08: 00001110; -- Load (M2 en AC)
09: 01001111; -- ADD (AC+PR) lo cargo en el registro AC
0A: 00101111; -- STORE (AC en PR)
0B: 10100000; -- RET
0C: 00000000; --
0D: 00001000; -- EstablezcoM1(multicador) en 8(arbitrario)
0E: 00000101; --EstablezcoM2(multicando)en 5 (arbitrario)
0F: 00000000; -- Establezco producto en 0(valor inicial)
[10..1F]: 00000000;
FINAL
SEGUNDO
00: 00010101; -- load, AC,M2 (cargo M2 al AC)
01: 00110010; -- STORE M2 en memoria(12H)
02: 00010100; -- load, AC,M1 (cargo M1 al AC)
03: 00110001; -- STORE M1 en memoria(11H)
04: 00010100; -- load, AC,M1 (cargo M1 al AC)
05: 01100000; -- decre
06: 11000001; -- BNZ
07: 11100111; -- JUMP bucle infinito
08: 10001010; -- CALL SUMA
09: 11100100; -- JUMP 4
--subrutina
0A: 00110100; -- STORE AC en M1(Actualizo M1)
0B: 00010101; -- load, AC,M2
0C: 01010010; -- ADD AC+M2 (sumo el valor de M2,ya guardado en 1C)
0D: 00110101; -- STORE AC en M2
0E: 00110110; -- STORE AC en PR
0F: 10100000; --RET
[10..13]: 00000000;
14 : 00000101; --EstablezcoM2(multicando)en 5 (arbitrario)
15 : 00001000; --EstablezcoM1(multicador) en 8(arbitrario)
[16..1F]: 00000000;
FIN

You might also like