0% encontró este documento útil (0 votos)
147 vistas3 páginas

Soluciones Segunda Parte

El primer documento presenta un problema sobre la serie de Fibonacci y su solución mediante un programa indirecto. El segundo documento plantea leer datos de memoria y compararlos con un valor X, reemplazando los iguales por cero. El tercer documento representa una expresión de hardware en AHPL para ser traducida a programa SIC. El cuarto problema pide borrar datos pares de 100 posiciones usando un contador.

Cargado por

Cristhian AF
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
147 vistas3 páginas

Soluciones Segunda Parte

El primer documento presenta un problema sobre la serie de Fibonacci y su solución mediante un programa indirecto. El segundo documento plantea leer datos de memoria y compararlos con un valor X, reemplazando los iguales por cero. El tercer documento representa una expresión de hardware en AHPL para ser traducida a programa SIC. El cuarto problema pide borrar datos pares de 100 posiciones usando un contador.

Cargado por

Cristhian AF
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

EJERCICIOS

DIRECCIONAMIENTO Y CONTROL DE FLUJO

4. Hallar los primeros 16 términos de la serie de fibonnacci (Variación examen 2017).

Solución (Indirecto)
DATOS: INSTRUCCIONES:
1. Leer termino anterior (Fi-1 guardado en X).
000 0(Fi-1) 400 LAC I 101(1)
2. Sumamos termino actual (Fi guardado en Y).
001 1(Fi) 401 TAD I 102(2)
3. Moverse al termino siguiente (Incrementar Y). 402 ISZ 102(3)
4. Incrementamos la dirección X. 002 ------
003 ------ 403 ISZ 101(4)
5. Guardar el termino siguiente (Fi+1 guardado en Y). 404 DAC I 102(5)
… …
6. Ultimo valor? 100 -14 405 ISZ 100(6)
a. No, volver a 1 101 000(X) 406 JMP 400(6.a)
7. Si, salimos del programa 102 001(Y) 407 HLT(7)
410

5. (Examen II/2018) Escriba el siguiente programa de software para el computador SIC


Se deben leer 8 posiciones de memoria desde 200 hasta 207. Si el dato leído es igual al
valor de X, que está grabado en la posición de memoria 500, se debe guardar 0 en la
posición de memoria que se acaba de leer, sucesivamente así hasta leer el último dato en la
dirección 207, finalizando de esta forma el programa. Todos los datos, incluyendo X, son
mayores que cero.
Utilizar notación octal. El programa no debe tener más de 15 instrucciones; se dispone
adicionalmente de 4 posiciones de memoria para almacenar constantes y operandos:
Dirección 10 tiene grabado el dato “1”
Dirección 30 tiene grabado el dato “-8”
Dirección 500 tiene grabado el valor de X
Dirección 400 disponible para otro uso.

Solución (Indexada)
1. Leer dato en dirección Y
2. Negar acumulador(NOT(Z)=-Z-1)
3. Sumarle 1(-Z)
4. Sumarle numero X(X-Z=0???)
5. Resultado igual a 0????
a. Si, guardar el acumulador en dirección X
b. Moverse a la siguiente posición de memoria
c. Ultimo dato???
i. No, volver al paso 1
d. Si, salir del programa
6. No, Moverse a la siguiente posición de memoria
7. Ultimo dato???
a. No, volver al paso 1
8. Si, salir del programa
1. Inicializar IA
DATOS: INSTRUCCIONES:
2. Leer dato en dirección Y
010 1 600 CLA(1)
3. Negar acumulador(NOT(Z)=-Z-1) 601 DTA(1)
… …
4. Sumarle 1(-Z) 602 LAC IA 200(2)
030 -8
5. Sumarle numero X(X-Z=0???) … …. 603 CMA(3)
6. Resultado igual a 0???? 400 ------ 604 TAD 010(4)
a. Si, guardar el AC en dirección X … … 605 TAD 500(5)
7. No, Moverse a la siguiente posición de memoria 500 X 606 SKZ(6)
… … 607 JMP 611(7. No)
8. Ultimo dato???
200+0 A 610 DAC IA 200(6.a)
a. No, volver al paso 2 611 INA(7)

9. Si, salir del programa 612 ISZ 030(8)
200+7 X
613 JMP 602(8.a)
614 HLT(9)
615

6. (Examen II/2020) La siguiente expresión representa el paso 20 de un programa de


hardware en AHPL, cada uno de los vectores tiene una dimensión de 18 bits.

Mediante el software del computador SIC se debe escribir un programa que represente toda
esta expresión con el propósito de obtener resultados idénticos. Se utilizan las siguientes
direcciones de memoria:
100 dirección de R
101 dirección de T
102 dirección de B
103 dirección de C
104 dirección de E
105 dirección reservada para A
106 dirección reservado para K
El programa no deberá tener más de 14 instrucciones.

Solución

r=1 si y solo si R=111111111111111111=-1 AB

r=0 si algun bit de R es cero AC

e=1 si algun bit de T es igual a 1 KNada

e=0 si y solo si T=00000000000000000000 KE


1. Leer el dato T INSTRUCCIONES:
2. T es igual a 0?? 400 LAC 0101(1)
a. No, Ir a ver la otra operación(5) 401 SKZ(2)
3. Si, Leer E 402 JMP 405(2.a)
403 LAC 0104(3)
4. Guardamos en K
404 DAC 0106 (4)
5. Incrementar R y preguntamos es igual a 0?? 405 ISZ 100(5)
a. No, Leemos C 406 JMP 410
b. Saltar a guardar(7) 407 JMP 412
6. Si, Leemos B 410 LAC 0103(5.a)
7. Guardar en A 411 JMP 413(5.b)
412 LAC 0102(6)
413 DAC 105(7)
414
415

7. Borrar los datos pares de 100 posiciones de memoria almacenadas con anterioridad. No
se tiene disponible ninguna otra dirección de memoria aparte de un contador.

Solución (Indexado) DATOS: INSTRUCCIONES:


1. Inicializar IB 000+0 1 400 CLA(1)
2. Leer dato en dirección X 000+1 401 DTB(1)
3. Ver si es par 000+2 402 LAC IB 000(2)
a. Si, Borrar AC … … 403 RAR(3)
b. Guardar en dirección X 143 3 404 SKZ(3)
4. No, Movernos a la siguiente dirección … …. 405 JMP 410(4. No)
200 -100 406 CLA(3.a)
5. Ultimo dato?
407 DAC IB 000(3.b)
a. No, volver a 2 410 INB(4)
6. Si, salir del programa 411 ISZ 200(5)
412 JMP 402(5.a)
413 HLT(6)
414
415
Ver si es par
AC, link link,AC
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 lf

lf 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

AC17=0 ES PAR
AC17=1 ES IMPAR

También podría gustarte