ETN 821 Soluciones Ejercicios SIC

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 14

EJERCICIOS

DIRECCIONAMIENTO Y CONTROL DE FLUJO

8. Escribir un programa de software para el computador SIC, que no tenga más de 13


instrucciones y hasta 2 posiciones de memoria con constantes u operandos, almacenados
con anterioridad. Se debe realizar lo siguiente: leer 10 datos previamente grabados en la
memoria a partir de la dirección 200; aquellos datos que sean pares se copiaran UNO POR
UNO, comenzando en la dirección 400. El programa concluye cuando se han analizado los
10 datos.

Solución (Indexado)
1. Inicializar registro índice A(para X) DATOS: INSTRUCCIONES:
2. Inicializar registro índice B(para Y) 200+0 A 600 CLA(1)
3. Leer el dato de la dirección X 200+1 B 601 DTA(1)
4. Rotar acumulador a la derecha 200+2 C 602 DTB(2)
5. Es par? (LF=0?) … … 603 LAC IA 200(3)
a. No, salte al paso 9 400+0 ------ 604 RAR(4)
400+1 ------ 605 SZL(5)
6. Si, Leer dato de la dirección X
400+2 ------ 606 JMP 612(5.a)
7. Guardar el AC en dirección Y … … 607 LAC IA 200(6)
8. Moverse al siguiente destino(Y+1) 500 -10 610 DAC IB 400(7)
9. Moverse al siguiente dato(X+1) 501 ------ 611 INB(8)
10. Ultimo dato? 612 INA(9)
a. No, volver a 3 613 ISZ 500(10)
11. Si, salir del programa(HLT) 614 JMP 603(10.a)
615 HLT(11)

Solución (Indexado e indirecto) DATOS: INSTRUCCIONES:


1. Inicializar registro índice A(para X) 200+0 A 600 CLA(1)
2. Leer el dato de la dirección X 200+1 B 601 DTA(1)
200+2 C 602 LAC IA 200(2)
3. Rotar acumulador a la derecha
… … 603 RAR(3)
4. Es par? (LF=0?) 400 ------ 604 SZL(4)
a. No, salte al paso 8 401 ------ 605 JMP 611(4.a)
5. Si, Leer dato de la dirección X 402 ------ 606 LAC IA 200(5)
6. Guardar el AC en dirección Y … … 607 DAC I 501(6)
7. Moverse al siguiente destino(Y+1) 500 -9 610 ISZ 501(7)
8. Moverse al siguiente dato(X+1) 501 400 611 INA(8)
612 ISZ 500(9)
9. Ultimo dato?
613 JMP 602(9.a)
a. No, volver a 2 614 HLT(10)
10. Si, salir del programa(HLT)
9. Escribir el programa de software para el computador SIC del modulo MAX el cual analiza
el contenido de las posiciones de memoria 200 a 217 y encuentra el máximo valor. El
programa no puede tener más de 15 instrucciones y tiene disponibles 3 posiciones de
memoria además de un dato grabado con anterioridad.
Dirección 10 tiene grabado el dato “1”
Dirección 11 disponible para otro uso (AUX)
Dirección 12 disponible para otro uso (Dirección indirecta)
Dirección 13 disponible para otro uso

Solución (Indirecto)
1. Leer dato AUX DATOS: INSTRUCCIONES:
2. Complemento a AC(-AC-1) 200 A 600 LAC 11(1)
3. Sumar 1(-AC) 201 B 601 CMA(2)
4. Sumar dato de dirección X(DATO-AC) 202 C 602 TAD 10(3)
5. Positivo? (SKP) … … 603 TAD I 12(4)
a. No, ir al paso 8 10 1 604 SKP(5)
11 0 605 JMP 610(5.a)
6. Si, Leer dato de dirección X
12 200 606 LAC I 12(6)
7. Guardar en AUX 13 -16 607 DAC 11(7)
8. Movernos al siguiente dato(X+1) 610 ISZ 12(8)
9. Ultimo valor? 611 ISZ 13(9)
a. No, volver a 1 612 JMP 600(9.a)
10. Si, salir del programa 613 HLT(10)
11. Si, salir 614
AUX – DATO < 0 Reemplazar dato auxiliar (SKP?)
DATO – AUX > 0 Reemplazar dato auxiliar (SKP)

Otra solución (Con explicación)


DATOS: INSTRUCCIONES:
1. Leer dato en posición 200 200 A 576 LAC 200(1)
2. Guardar en AUX 201 B 577 DAC 11(2)
3. Leer dato AUX 202 C 600 LAC 11(3)
4. Complemento a AC(-AC-1) … … 601 CMA(4)
5. Sumar 1(-AC) 10 1 602 TAD 10(5)
11 AUX 603 TAD I 12(6)
6. Sumar dato de dirección X(DATO-AC)
12 201 604 SKP(7)
7. Positivo? (SKP) 13 -15 605 JMP 610(7.a)
a. No, ir al paso 8 606 LAC I 12(8)
8. Si, Leer dato de dirección X 607 DAC 11(9)
9. Guardar en AUX 610 ISZ 12(10)
10. Movernos al siguiente dato(X+1) 611 ISZ 13(11)
11. Ultimo valor? 612 JMP 600(11.a)
613 HLT(12)
a. No, volver a 1
12. Si, salir del programa
10. Se desea determinar si el número de bits en uno del dato en la posición 100 es par
(Paridad par). Escriba el programa para el computador SIC que realice la detección de unos
y si se encontrara que el dato de 18 bits es de paridad par vaya hacia la dirección 500
donde hay un programa que trabaja con datos de paridad par. Tiene disponibles 2
posiciones para datos y no deben usarse más de 15 direcciones para instrucciones.

Solución

1. Leer dato(X) DATOS: INSTRUCCIONES:


2. Rotar a la izquierda 000 CONT1 600 LAC 100 (1)
3. Bit extraído es cero? (SZL) 001 -15 601 RAL(2)
a. No, incrementar contador de 1’s … … 602 SZL(3)
4. Si, Ultimo bit? 100 20 603 ISZ 000(3.a)
a. No, volver 2 604 ISZ 001(4)
605 JMP 601(4.a)
5. No, leer contador
606 LAC 000(5)
6. Rotamos contador a la derecha 607 RAR(6)
7. Numero de 1’s par?? LF=0??(SZL) 610 SZL(7)
a. No, fin del programa(HLT) 611 JMP 613(7.a)
8. Si, saltar a la posición 500 612 JMP 500(8)
9. … 613 …

Rotación a la izquierda
Ac0 Ac1 Ac2 Ac3 Ac4 Ac5 Ac6 Ac7 Ac8 Ac9 Ac10 Ac11 Ac12 Ac13 Ac14 Ac15 Ac16 Ac17 link
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 lf

Ac0 Ac1 Ac2 Ac3 Ac4 Ac5 Ac6 Ac7 Ac8 Ac9 Ac10 Ac11 Ac12 Ac13 Ac14 Ac15 Ac16 Ac17 link
lf 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

Equivalencia del ejercicio


EJERCICIOS
DIRECCIONAMIENTO Y CONTROL DE FLUJO

11. Realizar la multiplicación de dos números de 18 bits guardados previamente en la


memoria. No tiene una restricción en el número de instrucciones ni direcciones de datos
disponibles, sin embargo se pide utilizar al menos una subrutina.
Solución: Primero se debe revisar el algoritmo de la multiplicación
1 1 1 1 Multiplicando

1 0 1 0 Multiplicador

1 0 0 0 0 1 1 1 1

1 1 1 1 1 0 0 0 0

1 0 0 0 0 1 1 1 1

1 1 1 1 0 0 0 0

1 0 0 1 0 1 1 0 Producto 1 0 0 1 0 1 1 0

Nible Alto Nible Bajo

Este comportamiento es posible llevarlo a una secuencia de operaciones que se realizan


según un orden y nos permitirán calcular el mismo resultado, los pasos serian los siguientes:

1er Momento: Se inicia con un producto que es igual a 0, luego se toma el Mdor y se lo rota
a la derecha para obtener el bit menos significativo.

Inicio 0 0 0 0 0 0 0 0 Mdor: 0 1 1 0 X

Rotar Mdor: X 0 1 1 0

Luego según el valor del bit extraido si este es 1 se suma el Mando a la parte alto del
producto en cambio si no es igual a 0 no se suma nada:

LF = 0; No se suma nada

Luego se rota el producto empezando desde la parte alta y continuando en la parte baja.

Rotar parte alta: 0 0 0 0 0


0 0 0 0 0

Rotar parte baja: 0 0 0 0 0


0 0 0 0 0

Este procedimiento se realiza hasta terminar de extraer todos los bits del Mdor.
2do Momento:

Inicio 0 0 0 0 0 0 0 0 Mdor: X 0 1 1 X

Rotar Mdor: X X 0 1 1

LF = 1; Se suma Mando en la parte alta del producto

Sumar: 0 0 0 0

Mando 0 0 1 1

0 0 1 1

Rotar parte alta: 0 0 1 1 0


0 0 0 1 1

Rotar parte baja: 1 0 0 0 0


0 1 0 0 0

3er Momento:
Inicio 0 0 0 1 1 0 0 0 Mdor: X X 0 1 X

Rotar Mdor: X X X 0 1

LF = 1; Se suma Mando en la parte alta del producto

Sumar: 0 0 0 1

Mando 0 0 1 1

0 1 0 0

Rotar parte alta: 0 1 0 0 0


0 0 1 0 0

Rotar parte baja: 0 1 0 0 0


0 0 1 0 0

4to Momento:

Inicio 0 0 1 0 0 1 0 0 Mdor: X X X 0 X

Rotar Mdor: X X X X 0

LF = 0; No se suma nada
Luego se rota el producto empezando desde la parte alta y continuando en la parte baja.

Rotar parte alta: 0 0 1 0 0


0 0 0 1 0

Rotar parte baja: 0 0 1 0 0


0 0 0 1 0

Resultado final: 0 0 0 1 0 0 1 0
Solución: Uso de subrutinas
1. Leer Mdor
2. Rotar Mdor a la derecha
3. Guardar Mdor modificado
4. Ver si se debe sumar al producto LF = 0 (SZL)
a. No, sumar Mando a la parte alta del producto
5. Si, Leer parte alta del producto
6. Rotar parte alta del producto (Salvar el acarreo)
7. Guardar la parte alta
8. Leer parte baja
9. Rotar la parte baja del producto (Salvar el ultimo bit de la parte alta)
10. Guardar la parte baja
11. Ultimo bit de Mdor?
a. No, volver al paso 1
12. Si, salir del programa

Subrutina: Sumar parte alta con Mando


1. Leer Mando
DATOS: INSTRUCCIONES: SUBRUTINA:
2. Sumarle la parte alta 000 Mando 600 LAC 001(1) 500 ---
3. Guardar AC en la parte alta 001 Mdor 601 RAR(2) 501 LAC 000(1)
4. Volver al programa principal 002 Prod 602 DAC 001(3) 502 TAD 002(2)
003 Prod+1 603 SZL(4) 503 DAC 002(3)
004 -17 604 JMS 500(4.a) 505 JMP I 500
605 LAC 002(5)
606 RAR(6)
607 DAC 002(7)
610 LAC 003(8)
611 RAR(9)
612 DAC 003(10)
613 ISZ 004(11)
614 JMP 600(11.a)
615 JMS 500(12)
616 HTL
12. Se tiene una porción de memoria de 64 posiciones, con estas se desea obtener la
siguiente sumatoria:

No se tiene restricciones en cuanto al número de instrucciones y direcciones de memoria que


puede usar. Los 64 datos se encuentran grabados en memoria empezando de la dirección
00000.
Solución: Uso de subrutinas
DATOS: INSTRUCCIONES: SUBRUTINA:
1. Inicializar
000+0 M[0] 600 CLA(1) 500 604
2. Leemos dato en dir X 000+1 M[1] 601 DTA(1) 501 CMA(1)
3. Ir a complementar … … 602 LAC IA 000(2) 502 TAD 103 (2)
4. Sumar al resultado 0+100 M[63] 603 JMS 500(3) 503 JMP I 500
5. Guardar el resultado 101 ------(E) 604 TAD 101(4)
6. Ultimo dato? 102 -64 605 DAC 101(5)
103 1 606 ISZ 102(6)
a. No, volver a 2
607 JMP 602(6.a)
7. Si, Salir del programa
610 HLT(7)
Subrutina: Complemento a 2
1. Complementar AC
2. Sumar 1
3. Volver a la subrutina

Propuesto. Se tiene una porción de memoria de 64 posiciones, con estas se desea obtener la
siguiente sumatoria:

No se tiene restricciones en cuanto al número de instrucciones y direcciones de memoria que


puede usar. Los 64 datos se encuentran grabados en memoria empezando de la dirección
00000.
Solución: Uso de subrutinas
INSTRUCCIONES: SUBRUTINA:
1. Inicializar 600 500
2. Leer el IA 601 501
3. Rotar el AC a la derecha 602 502
4. Ver si es par LF=0?(SZL) 603 503
a. No, Ir a complementar y guardar (6) 604
605 DATOS:
5. Si, Leer dato de dirX
606 000+0 M[0]
6. Sumar al resultado
607 000+1 M[1]
7. Guardar el resultado … …
610
8. Ultimo dato? 0+100 M[63]
a. No, volver a 2 101 ------(E)
9. Si, Salir del programa 102 -64
Subrutina: Complemento a 2 103 1
1. Leer dato de dirX
2. Complementar AC(-AC-1)
3. Sumar 1(-AC)
4. Guardar dato en dirX (-M[i])
5. Volver a la subrutina

13. Se tiene una porción de memoria que contiene 8 datos y que se encuentran dentro del
rango de direcciones 00200-00300, la dirección inicial de los datos se encuentra guardada en
la dirección 00100 y no la conocemos. Los 8 datos se encuentran guardados uno después
del otro. Escribir un programa para el computador SIC que guarde los datos de las
direcciones pares uno por uno en una porción de memoria que empieza en la dirección
00400.
Solución:
1. Leer dirección guardada en 100(AC) DATOS: INSTRUCCIONES:
2. Rotar a la derecha 100 ZZZ(X) 600 LAC 100(1)
… … 601 RAR (2)
3. Dirección par SZL (LF=0?)
ZZZ 123 602 SZL(3)
a. No, saltar parte de guardado(Saltar a 7) … … 603 JMP 607(3.a)
4. Si, leer el dato de la dirección X ZZZ+7 321 604 LAC I 100(4)
5. Guardar el dato en la dirección Y 301 -7 605 DAC I 302(5)
6. Incrementar la dirección Y 302 401(Y) 606 ISZ 302(6)
7. Incrementar la dirección X 607 ISZ 100(7)
8. Ultimo valor? 610 ISZ 301(8)
a. No, Volver al paso 1 607 JMP 600(8.a)
610 HLT(9)
9. Si, Salir del programa

14. Escribir un programa para el computador SIC que lea un dato en memoria y LO GUARDE
EN FORMA INVERTIDA en la memoria en la posición 100. El programa no debe tener más
de 15 instrucciones y puede utilizar hasta 5 direcciones de memoria para datos y operandos.

Dirección 0 tiene grabado el dato a analizar


Dirección 1 disponible para otro uso
Dirección 2 disponible para otro uso
Dirección 3 disponible para otro uso
Dirección 4 disponible para otro uso

Solución: Mediante rotaciones

Dato original = 1110 0010

Dato invertido = 0100 0111

Rotación del bit menos significativo


1 1 1 0 0 0 1 0 0 0 1 1 1 0 0 0 1 0

Introducir en el resultado en forma inversa


0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Rotación del bit menos significativo
0 1 1 1 0 0 0 1 0 0 0 1 1 1 0 0 0 1

Introducir en el resultado en forma inversa


0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0

Rotación del bit menos significativo


0 0 1 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0

Introducir en el resultado en forma inversa


0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0

Rotación del bit menos significativo


0 0 0 1 1 1 0 0 0 0 0 0 0 1 1 1 0 0

Introducir en el resultado en forma inversa


0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0

Rotación del bit menos significativo


0 0 0 0 1 1 1 0 0 0 0 0 0 0 1 1 1 0

Introducir en el resultado en forma inversa


0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0

Rotación del bit menos significativo


0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1 1 1

Introducir en el resultado en forma inversa


0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0

Rotación del bit menos significativo


0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1

Introducir en el resultado en forma inversa


0 0 0 1 0 0 0 1 1 0 0 1 0 0 0 1 1 0

Rotación del bit menos significativo


0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1

Introducir en el resultado en forma inversa


0 0 1 0 0 0 1 1 1 0 1 0 0 0 1 1 1 0

Como se ve el algoritmo funciona ahora lo pasamos a lenguaje de maquina:


1. Leer el dato (LAC) DATOS: INSTRUCCIONES:
2. Rotar izquierda (RAL) 000 dato 300 LAC 000(1)
3. Guardar dato original (DAC) 001 resul 301 RAL (2)
4. Leer resultado parcial 002 -17 302 DAC 000(3)
5. Rotar derecha 003 303 LAC 001(4)
6. Guardar resultado parcial 004 304 RAR (5)
305 DAC 001(6)
7. Ultimo bit?
306 ISZ 002(7)
a. No, Volver al paso 1 307 JMP 300(7.a)
8. Si, Salir del programa 310 HLT(8)

15. Escribir el programa para el computador SIC que lea un dato en memoria y lo analice en
busca de todos los bits que se encuentran en 0. Cada vez que encuentre un bit en 0 se debe
guardar en el acumulador el índice del bit analizado y se debe ir a la subrutina de la posición
500.
El programa no debe tener más de 15 instrucciones y puede utilizar hasta 5 posiciones de
memoria para datos y operandos.

Solución: Rotación de bits y análisis de la bandera LF

Cont. rotaciones 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
0 1 1 1 1 1 0 0 1 1 1 0 0 0 1 0 1 0
ROTACIONES
Inicio 0 1 1 1 1 1 0 0 1 1 1 0 0 0 1 0 1 0
Rotación 1 1 1 1 1 1 0 0 1 1 1 0 0 0 1 0 1 0 0

Inicio 1 1 1 1 1 0 0 1 1 1 0 0 0 1 0 1 0 0
Rotación 2 1 1 1 1 0 0 1 1 1 0 0 0 1 0 1 0 0 0

Inicio 1 1 1 1 0 0 1 1 1 0 0 0 1 0 1 0 0 0
Rotación 3 1 1 1 0 0 1 1 1 0 0 0 1 0 1 0 0 0 0

1. Leer el dato (AC=DATO) INSTRUCCIONES: INSTRUCCIONES:


2. Rotar a la izquierda 076 CLA 076 CLA
3. Guardar el resultado de la rotación 077 DAC 001 077 DTB
4. Bit es igual a 0?(SZL) 100 LAC 000(1) 100 LAC 000(1)
a. No, Ir al paso 7 101 RAL(2) 101 RAL(2)
5. Si, transferir índice al acumulador 102 DAC 000(3) 102 DAC 000(3)
103 SZL(4) 103 SZL(4)
6. Saltar a la subrutina
104 JMP 107(4.a) 104 JMP 107(4.a)
7. Incrementar contador de rotaciones (Indice)
105 LAC 001(5) 105 DFB(5)
8. Ultimo bit? 106 JMS 500(6) 106 JMS 500(6)
DATOS:
a. No, volver al paso 1 107 ISZ 001(7) 107 INB(7)
000 Dato
9. Si, salir del programa 110 ISZ 002(8) 110 ISZ 002(8)
001 Index(0)
111 JMP 100(8.a) 111 JMP 100(8.a)
002 -17
112 HTL(9) 112 HTL(9)
003
113 113
004
16. Desarrollar el programa para el computador SIC que permita guardar en una porción de
memoria N los resultados de las sumas de los valores de otra porción de memoria M según
la grafica.

DIRECCION CONTENIDO DIRECCION CONTENIDO


000 AA 200 AA+0
001 BB 201 AA+BB
002 CC 202 AA+BB+CC
003 DD 203 AA+…+DD

...

...
...

076 22 ... 276 AA+…+22


077 11 277 AA+…+22+11

El programa no debe tener más de 15 instrucciones y se pueden utilizar hasta 5 direcciones


de memoria para constantes y operandos.

Solución: Acumulador con guardado en memoria.

1. Borrar acumulador DATOS: INSTRUCCIONES:


2. Inicializar IA 300 -64 100 CLA(1)
3. Inicializar IB 301 000 101 LAC 301(2)
302 102 TAD (3)
4. Leer dato de dirección IA (AC = AA)
303 103
5. Sumar resultado anterior(AA+R_anterior) 304 104
6. Guardar en dirección IB 105
7. Movernos a la siguiente dirección en IA 106
8. Movernos a la siguiente dirección en IA 107
9. Ultimo dato?
a. No, Volver al paso 2
10. Si, salir del programa

Solución mejorada

1. Borrar acumulador DATOS: INSTRUCCIONES:


2. Sumar dato de dirección X (AC+AA) 300 -64 100 CLA(1)
3. Guardar en dirección Y 301 000 101 TAD I 301(2)
302 200 102 DAC I 302(3)
4. Movernos a la siguiente dirección en X
303 103 ISZ 301(4)
5. Movernos a la siguiente dirección en Y 304 104 ISZ 302(5)
6. Ultimo dato? 105 ISZ 300(6)
a. No, Volver al paso 2 106 JMP 101(6.a)
7. Si, salir del programa 107 HTL(7)
EJERCICIOS ÚLTIMA PARTE
AHPL DEL COMPUTADOR SIC

1. Modificar los pasos para cambiar el funcionamiento de la siguiente instrucción:

ISZ: Incrementar y si es 0 moverse 15 instrucciones hacia adelante.

SOLUCION

ISZ

2. Modificar el programa de los 24 pasos para que el código:


IR0 IR1 IR2 IR0 IR1 IR2 NEMONICO
1 1 1 0 0 0 ISZ
Sea para la operación XOR(OR-EX) 0 0 1 LAC
0 1 0 AND
SOLUCION 0 1 1 TAD
1 0 0 JMS
Ver pasos afectados empezando de arriba hacia abajo 1 0 1 DAC
1 1 0 JMP
1 1 1 OREX

Bifurcación para escritura y lectura

3. Modificar el comando ISZ para que decremente el dato y si se produce acarreo salta una
dirección.

ISZ
4. Modificar algunos de los 24 pasos para realizar la siguiente operación

IR0 IR1 IR2 NEMONICO


… … … …
1 1 0 JMP
1 1 1 JMPAC

Donde JMPAC es una nueva instrucción para saltar a la dirección almacenada en el


acumulador.

5. Sea la siguiente configuración:


IR0 IR1 IR2 NEMONICO IR0 IR1 IR2 NEMONICO
0 0 0 ISZ 0 0 0 ISZ
0 0 1 JMP 0 0 1 JMP
0 1 0 DAC 0 1 0 DAC
0 1 1 JMS 0 1 1 JMS
1 0 0 OPERATIVAS 1 0 0 OPERATIVAS
1 0 1 LAC 1 0 1 LAC
1 1 0 AND 1 1 0 AND
1 1 1 TAD 1 1 1 TAD

Modificar los pasos que sean necesarios para conseguir esta configuración.

Excluye JMP (001)

Bifurcación para escritura y lectura

Excluye ISZ (100)

Actualizar LF con TAD


6. Modifique la secuencia de pasos de AHPL del computador SIC para obtener una
configuración en las instrucciones que siga la siguiente tabla:

IR0 IR1 IR2 NEMONICO IR0 IR1 IR2 NEMONICO


0 0 0 OR 0 0 0 OR
0 0 1 TAD 0 0 1 TAD
0 1 0 JPA(Salto AC>0) 0 1 0 JPA
0 1 1 JMP 0 1 1 JMP
1 0 0 JMS 1 0 0 JMS
1 0 1 DCA(Borra) 1 0 1 DCA
1 1 0 IOT 1 1 0 IOT
1 1 1 OPERATIVAS 1 1 1 OPERATIVAS

Excluye JMP (011)

Bifurcación para escritura y lectura

Actualizar LF con TAD

JPA

También podría gustarte

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy