Está en la página 1de 49

GUIA DE TRABAJOS PRACTICOS

CATEDRA:
ARQUITECTURA DE LAS COMPUTADORAS

CARRERA:
INGENIERIA EN SISTEMAS DE INFORMACION

FACULTAD REGIONAL MENDOZA

UNIVERSIDAD TECNOLOGICA NACIONAL

AÑO 2010

1
INDICE DE TRABAJOS PRACTICOS

PRÁCTICO 1 PARTE A: SISTEMAS DE NUMERACIÓN PAG . 3 - 5


PARTE B: COMPLEMENTACIÓN BINARIA PAG. 5 - 6
PARTE C: PUNTO FLOTANTE PAG. 6 - 7
PRÁCTICO 2 CÓDIGOS PAG. 8 - 12
PRÁCTICO 3 PARTE A: ALGEBRA DE BOOLE PAG. 13 - 15
PARTE B: SIMPLIFICACIÓN DE FUNCIONES PAG. 15 - 17
PRÁCTICO 4 SISTEMAS COMBINACIONALES PAG. 18 - 25
PRÁCTICO 5 SISTEMAS SECUENCIALES PAG. 26 - 29
PRÁCTICO 6 PARTE A: MEMORIAS PAG. 30 - 30
PRÁCTICO 6 PARTE B: ENSAYO PRÁCTICO DE MEMORIA RAM PAG. 31 - 33
PRÁCTICO 7 PROGRAMACIÓN DE UNA COMPUTADORA ELEMENTAL
DIDÁCTICA Y SIMULADOR PAG. 34 - 39
PRÁCTICO 8 PROGRAMACIÓN COMPUTADORA PERSONAL- USO DE DEBUG
PARTE A: RECONOCIMIENTO DE REGISTROS INTERNOS PAG.40 - 40
PARTE B: PROGRAMAS AVANZADOS PAG. 41 - 43
PRÁCTICO 9 PROGRAMAS DE APLICACIÓN CON PERIFÉRICOS
PARTE A: UTILIZACIÓN DE INTERRUPCIONES POR
SOFTWARE DEL BIOS. PAG . 44 - 44
PARTE B: PERIFÉRICOS
USANDO PLACA PUERTO PARALELO PAG. 44 - 48
PRÁCTICO 10 RECONOCIMIENTO DE EQUIPAMIENTO COMPUTACIONAL
Y PERIFÉRICOS PAG. 49 - 49

2
TRABAJO PRÁCTICO NO 1
PARTE A: SISTEMAS DE NUMERACIÓN
EJERCICIOS A RESOLVER EN CLASE
EJERCICIO 1:
Convertir a decimal los siguientes números.

a) 11010100112 b)1BF16 c) 111101,101012

d) 2328 e) 575,548 f) 2CD,516

Resolución del punto a)

Siempre que se quiera convertir de cualquier sistema de numeración a decimal el método


más apropiado es el del polinomio de numeración.

N = a n b n + a n −1b n−1 + ..... + a i b i + ..... + a 0 b 0 + a −1b −1 + ..... + a − p b − p


Se representa el nº a convertir mediante el polinomio y se lo opera en decimal obteniendo
el resultado en decimal.
11010100112=1x29+1x28+0x2 7+1x26+0x25+1x24+0x2 3+0x22+1x21+1x20
11010100112=512+256+64+16+2+1=85110

EJERCICIO 2:
Convertir a octal los siguientes números.

a) l382 10 b) 7523,23610 c) 111010012

d) 1011011,1011 2 e) 45BA16 f) DCBA,2F16

EJERCICIO 3:
Convertir a hexadecimal los siguientes números.

a) 1001101,10011 2 b) 6748 c) 5272,328

d) 832410 e) 454510 f) 896310

EJERCICIO 4:
Convertir a binario los siguientes números.

a) 157810 b) 359,7510 c) 544,248

d) 637,438 e) DAB,B216 f) EC,9B16

3
Resolución parte c)
Cuando quiero convertir un nº de cualquier otra base a decimal el método más conveniente
es el de las divisiones sucesivas para la parte entera y multiplicaciones sucesivas para la
parte fraccionaria porque todas las operaciones se hacen en decimal.

359/2=179 y el resto es 1
179/2=89 R=1
89/2=44 R=1
44/2=22 R=0
22/2=11 R=0
11/2=5 R=1
5/2=2 R=1
2/2=1
El nº se forma a partir del último cociente y todos los restos hacia arriba: 111001112
Para la parte fraccionaria se hace lo siguiente:
0,75x2=1,5 (se saca la parte entera y se vuelve a multiplicar por dos hasta que la parte
fraccionaria tome el valor cero)
0,5x2=1,0
la parte fraccionaria es 11
la conversión completa es: 11100111,112
EJERCICIO 5:
Convertir a base dos el número 78,3 en base diez, y volverlo a base
diez apreciando seis bits fraccionarios. ¿Qué conclusiones resultan?.

EJERCICIO 6:
¿Cuál es el mayor número decimal que puede ser representado por 3
y 6 dígitos hexadecimales ?.

EJERCICIOS A RESOLVER POR EL ALUMNO


EJERCICIO 1:
Ordenar para los siguientes casos los números de mayor a menor.

a) (BA3)16 (11001011)2 (8342)10

(E4A)16 (6895)8 (11101101111)2

b) (1011101)2 (5DFC)16 (7835)10


(BC57)16 (57771)10 (110110111)2

c) (100)16 (110001011)2 (3761)10


(5075)8 (3D8)16 (907)10

4
EJERCICIO 2:
Dado el número 10, convertirlo a base diez, suponiendo que está:
a) en base dos; b) en base seis; c) en base ocho; d) en base quince.

EJERCICIO 3:
¿Cuántos símbolos tendrá un sistema de numeración con base 14?.
Indicar los posibles individuos del mismo.

PARTE B: COMPLEMENTACIÓN BINARIA

EJERCICIOS PARA RESOLVER EN CLASE


EJERCICIO 1:
Efectúe las siguientes operaciones utilizando palabras de 8 bits,
1) Representando los números negativos mediante el convenio de complemento a dos,
2) Representando los números negativos mediante el convenio de complemento a uno.

a) 35 - 21 b) -48 + 21

c) -25 - (-39) d) -63 – 18

Resolución punto a)

1) Transformamos una resta en una suma : 35+(-21)


2) Representamos en binario los dos números positivos rellenando con ceros a la iz-
quierda hasta completar los 8 bits.
3) Complementamos el negativo cambiando ceros por unos y unos por ceros en com-
plemento a uno y además sumandole 1 en complemento a dos.
4) Hacemos la suma.

35 = 00100011
21 = 00010101
-21= 11101010 (complemento a uno)
-21= 11101011 (complemento a dos)
00100011 00100011
11101011 11101010
100001110 (en C-2 el uno excedente no 100001101
se toma en cuenta) (1410) 1 (se suma el 1excedente en C-1)
00001110 (1410)

EJERCICIO 2:
Indique cuál es el máximo número decimal positivo y negativo representa-
do en el convenio de complemento a dos, si se utilizan palabras de 16 bits y 32 bits.

5
EJERCICIOS PARA RESOLVER POR EL ALUMNO

EJERCICIO 1:
Resuelva los siguientes ejercicios en complemento a uno y complemento a
dos.
a) 896-325 b) –478 –124 c) 75-458

PARTE C: PUNTO FLOTANTE

EJERCICIOS PARA RESOLVER EN CLASES

EJERCICIO 1:
Disponiendo de una palabra de 36 bits, de los cuáles 1 es destinado
para el bit de signo del número, 8 para el exponente y 27 para la mantisa, represente en
punto flotante y en base 2, 8 y 16 los siguientes números decimales.

a) 29 b) 52,73 c) 0,125 d) 0,011

Resolución del punto c)

1) Primero se convierte el número al sistema binario.


2) Luego se expresa en notación cientifica.
3) Se representa en punto flotante.

1) 0,125 = 0,001 2
2) 0,001 = .1 x 2 -2 ( 0,5 ≤ M < 1 ) normalización de la mantisa
3) el primer bit de la expresión de punto flotante es el bit de signo 0 (positivo),
1(negativo); los 8bits siguientes corresponden al exponente (en este caso exceso
12810). De 0 a 127 corresponden a los exponentes negativos; el 128 es exponente
cero y del 129 al 255 corresponden a los exponentes positivos. Los siguientes vein-
tisiete bits corresponden a la mantisa.
4) El primer bit es cero por ser el número positivo.
5) El exponente se calcula restando 128-2=126 que en binario es 01111110
6) La mantisa es 100000000000000000000000000

001111110100000000000000000000000000 (esta sería la representación en punto flotante


base del exponente dos exceso 128)

Tomando el mismo ejemplo lo representaremos en base 8

0,001= .001 x 80 (en este caso no existe normalización porque se corre la coma de 3 en 3)

010000000001000000000000000000000000

Tomando el mismo ejemplo en base 16

0,001 = .001 x 160 (se corre la coma de 4 en 4)

01000000000100000000000000000000000

6
EJERCICIO 2:
Efectúe las siguientes operaciones de acuerdo a la representación en
punto flotante indicada en el ejercicio anterior, y en base 2.

a) 110011 + 11100,110110 + 101,11


b) 1110100,0111 + 10110,0011
c) 1010010,00101 + 0,000010011001

EJERCICIO 3:
Obtenga los números decimales de la siguiente representación en
punto flotante de base 2.

a) 0 10001101 1110010010100001... b) 1 01010001 1111010001100001...

EJERCICIO 4:
Indique cuáles son los máximos y mínimos números positivos deci-
males que pueden representarse en el formato de punto flotante indicado en simple y doble
precisión, y base 2.
EJERCICIOS PARA SER RESUELTOS POR EL ALUMNO
EJERCICIO 1:
Disponiendo de una palabra de 36 bits, de los cuáles 1 se destina
para el bit de signo del número, 8 para el exponente y 27 para la mantisa, representar en
punto flotante y en base 2, 8 y 16 los siguientes números decimales.

a) 25,49 b) 0,66 c) 0,00000073 d) 96,2587

EJERCICIO 2:
Efectúe las siguientes operaciones de acuerdo a la representación en
punto flotante indicada en el ejercicio anterior, y en base 2.

a) 0,00000010111101 + 10011110,001
b) 0,11111010 + 0,000000110
c) 1101001010,0001 + 0,000001100001011

EJERCICIO 3:
Obtenga los números decimales de la siguiente representación en
punto flotante de base 2.

a) 0 00111110 100011110101... d) 0 10110100 110010011101...

EJERCICIO 4:
Indique cuáles son los máximos y mínimos números positivos deci-
males que pueden representarse en el formato de punto flotante indicado en simple y doble
precisión, y base 2. Con un exponente de 7 bits.

7
TRABAJO PRÁCTICO NO 2
CÓDIGOS

EJERCICIOS A RESOLVER EN CLASE


EJERCICIO 1:
Realizar la tabla de un código Gray de 5 bits.

EJERCICIO 2:
Realizar la tabla de un código Jhonson de 6 bits.
Indique que características presenta este código.

EJERCICIO 3:
Completar el cuadro, según los códigos indicados para la codificación de los
números decimales enunciados. ¿Cuáles de los códigos son auto complementarios?.

----------------------------------------------------------------------------------------------------------------------------
Decimal BCD 2421 BCD EXC3 BCD 3421 BCD 5421
----------------------------------------------------------------------------------------------------------------------------
7
23
67,5
81
95,8
104
237
982,99
----------------------------------------------------------------------------------------------------------------------------
EJERCICIO 4:
Indicar cual es la distancia mínima del código BCD Aiken.
Obtener a partir de él un código de paridad impar con la incorporación de un bit de paridad.
¿ Cuál es la distancia mínima del código resultante ?.

EJERCICIO 5:
Realizar la tabla de los códigos 2 entre 5, y biquinario.
Indicar la distancia mínima de ellos, y la denominación que reciben estos tipos de códigos.

EJERCICIO 6:
Realice la tabla del código Hamming para la detección y corrección de un bit,
tomando como código base de información el BCD 3421.

2p ≥ n + p +1 p=nº de bits a agregar en el nuevo código


3421 n= nº de bits del código 3421 (4)
0000 2 3 ≥ 4 + 3 + 1 = 8 los p bits los desarrollamos en binario natural
0001 C3 C2 C1
0010 000
8
0011 b1 001 los bn equivalen a los bit del nuevo código y están
0100 b2 010 codificados en binario natural
0101 b3 011 los cn se los denomina bits correctores de error y se
0110 b4 100 calculan de la siguiente manera
0111 b5 101
1101 b6 110 c1 = b1 ⊕ b3 ⊕ b5 ⊕ b7
1110 b7 1 1 1 c 2 = b2 ⊕ b3 ⊕ b6 ⊕ b7
c 3 = b4 ⊕ b5 ⊕ b6 ⊕ b7
ahora considerando que no hay error al recibir el código nuevo podemos decir que c1,, c2 y
c3 valen cero y así debido a una propiedad de la or exclusiva podemos extrapolar b1, b2 y b4
b1 = b3 ⊕ b5 ⊕ b7
b2 = b3 ⊕ b6 ⊕ b7
b4 = b5 ⊕ b6 ⊕ b7
donde ya tenemos calculados los 3 bits que agregamos al nuevo código; ahora confeccio-
namos el código de Hamming completo
b7 b6 b5 b4 b3 b2 b1
0 0 0 0 0 0 0
0 0 0 0 1 1 1
0 0 1 1 0 0 1
0 0 1 1 1 1 0
0 1 0 1 0 1 0
0 1 0 1 1 0 1
0 1 1 0 0 1 1
0 1 1 0 1 0 0
1 1 0 0 1 1 0
1 1 1 1 0 0 0

EJERCICIO 7:
Indicar las distintas combinaciones binarias asignadas a cada uno de los siguien-
tes números, caracteres ó símbolos especiales, en el código ASCII de 7 bits.

0; %; , ; G; ); 3; +; &; . ; T; ¿ ;´

EJERCICIO 8:
Indicar a que números, caracteres ó símbolos especiales pertenecen las combina-
ciones del código ASCII de 7 bits si las mismas se representan con los siguientes números en octal.

75 ; 12 ; 105 ; 62 ; 52 ; 13 ; 74 ; 132 ; 55 ; 27

CIFRADO DE DATOS O ENCRIPTACIÓN

EJERCICIO 9:
Dado el siguiente texto sométalo a un algoritmo de cifrado
9
UNIVERSIDAD TECNOLOGICA NACIONAL

Suponemos por simplicidad que los únicos caracteres de datos que tenemos que manejar son las letras
mayúsculas y los espacios en blanco.

Suponemos como clave de cifrado la cadena de caracteres:

ESTUDIAR

1).- Dividimos el texto plano en bloques de longitud igual a la clave de cifrado (en este caso 8 le-
tras)

UNIVERSI DAD+TECN OLÓGICA+ NACIONAL (Los espacios en blanco son ahora mostra-
dos en forma explícita como “+”)

2).- Reemplazamos cada carácter del texto plano por un entero que esté en el rango de 00 a 26, usando:

+ A B C D E F G H I J K L M N Ñ O P Q R S T U V X Y Z
00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26

22 15 09 23 05 19 20 09 04 01 04 00 21 05 03 14 16 12 16 07 09 03 01 00 15 01 03 09 16 15 01 12

3).- Repetimos el paso 2) para la clave de cifrado

05 20 21 22 04 09 01 16

4).- Para cada bloque de texto plano reemplazamos cada carácter por la suma módulo 27 de su codi-
ficación de enteros más la codificación de enteros del carácter correspondiente de la clave de cifrado.

22 15 09 23 05 19 20 09 04 01 04 00 21 05 03 14 16 12 16 07 09 03 01 00 15 01 03 09 16 15 01 12
05 20 21 22 04 09 01 16 05 20 21 22 04 09 01 16 05 20 21 22 04 09 01 16 05 20 21 22 04 09 01 16

00 08 03 18 09 01 21 25 09 21 25 22 25 14 04 03 21 05 10 02 13 12 02 06 20 21 24 04 20 24 02 11

5).- Reemplazamos cada codificación de enteros del resultado del paso 4) por su equivalente en ca-
racteres:

00 08 03 18 09 01 21 25 09 21 25 22 25 14 04 03 21 05 10 02 13 12 02 06 20 21 24 04 20 24 02 11
+ H C Q I A T Y I T Y U Y N D C T E J B M L B F S T X D S X B K

Quedando el texto codificado como:


+HCQIATYITYUYNDCTEJBMLBFSTXDSXBK

El procedimiento de descifrado para este ejemplo es directo, siempre y cuando se tenga la clave.

10
EJERCICIOS PROPUESTOS PARA QUE RESUELVA EL ALUMNO
EJERCICIO 1:
Que cantidad de bits necesitaría en un código Gray; para codificar ángulos de 1
en 1 grados hasta 360 grados.

EJERCICIO 2:
Los códigos ponderados BCD son aquellos en los que a cada posición de un
dígito binario se le asigna un peso, de forma tal que el número decimal equivalente se presenta como:
N = Σ Pi x Xi, - dónde Pi es el peso de la posición i, y Xi toma el valor 0 ó 1 según la combinación,
y N varía entre 0 y 9. Teniendo en cuenta lo indicado,
¿ Cuáles de los siguientes códigos son ponderados, y en caso de ser así, cuáles son los pesos corres-
pondientes?. Para efectuar el análisis complete con las combinaciones faltantes cada uno de los códi-
gos.

a) decimal P3 P2 Pl PO b) decimal P3 P2 Pl PO
1 0 0 0 1 3 0 0 1 1
3 0 0 1 1 5 0 1 0 1
4 0 1 0 0 7 1 1 0 1
7 1 1 0 0 9 1 1 1 1

c) decimal P3 P2 Pl PO d) decimal P3 P2 Pl PO
1 0 0 0 1 0 0 0 0 0
3 0 0 1 1 1 0 0 0 1
5 0 1 0 0 2 0 0 1 1
7 1 1 0 0 3 0 0 1 0

EJERCICIO 3:
Representar el número 927 en binario natural y en BCD EXS 3.
Comentar el resultado luego de efectuar un análisis comparativo sobre la facilidad para obtener las
representaciones y la longitud de bits necesarios para cada caso.

EJERCICIO 4:
¿Cuántos bits tendrá el código Hamming para poder detectar y corregir un error
si los datos originalmente se codifican con combinaciones de:

a) 5 bits

b) 8 bits

c) 12 bits?

EJERCICIO 5:
Dado el siguiente texto sométalo a un algoritmo de cifrado:
ARQUITECTURA DE COMPUTADORAS
Utilice la palabra clave: NAND

11
EJERCICIO 6:
Dado el siguiente texto que se encuentra codificado con la palabra clave:
AVANTI
Descífrelo utilizando el esquema anterior.

ÑLTNÑNSANCNIFJAZUIDQNOMN

EJERCICIO 7:
Ídem al anterior utilizando la palabra clave MATERIA

NSL+ACFOUOXSIEQAXTEZVGBYTKJT

12
TRABAJO PRÁTICO N0 3

PARTE A: ALGEBRA DE BOOLE

EJERCICIOS A RESOLVER EN CLASES

EJERCICIO 1:
Hallar las expresiones canónicas de las siguientes funciones.
Representar la tabla de verdad correspondiente a cada una de ellas.

f (a, b, c ) = ac + bc + ab c
f (a, b, c, d , e ) = ab ce + a de
f (a, b, c, d ) = a + b c + c
RESOLUCIÓN:
f (a, b, c) = ac + bc + ab c se aplica el sig. Postulado del A. De Boole:
= ac (b + b ) + bc( a + a ) + ab c a + a = 1 ; a.a = 0 y luego distributiva
= abc + ab c + abc + a bc + ab c expresión canónica

EJERCICIO 2:
Simplificar las siguientes expresiones aplicando los teoremas del álgebra de
Boole.

f ( p, q, r ) = pqr + pq + pq r + pqr + pqr

f (a, b, c, d ) = bc + abc + a bd + ab c + cbd + a b d + cbd


RESOLUCIÓN
f ( p, q, r ) = pqr + pq + pq r + pqr + pqr agrupando y sacando factor común
= pq(r + r ) + pq + pq r + pqr r + r =1
= p (q + q ) + pq r + pqr
= p + pq r + pqr aplicamos ahora p + f ( p, q, r ) = p + f (0, q, r ) y
p + f ( p, q, r ) = p + f (1, q, r )
= p + 1q r + 0qr = p + q r
EJERCICIO 3:
Dadas las siguientes funciones, representadas mediante la expresión canónica por com-
prensión de suma de productos y producto de sumas, obtener las representaciones de las mismas en la
forma de producto de sumas y suma de productos respectivamente.

a) f (a , b, c ) = ∑ (2,5,7 )
3

b) f (a, b, c, d ) = ∏ (1,3,4,8,12,14)
4

13
EJERCICIO 4:
Obtener la tabla de verdad y la función canónica por comprensión en la forma de
producto de sumas de una función de 4 variables que toma el valor 1 cuando 3 ó más variables toman
el valor 0.

EJERCICIO 5:
Obtener la tabla de verdad y la función canónica por comprensión y extensión en
la forma de suma de productos y producto de sumas de una función de 4 variables que toma el valor 0
cuando la variable de menor peso vale 0, y la de mayor peso vale 1.

EJERCICIO 6:
Demostrar las siguientes igualdades.

(p + a )d e c = p a d + e + c

a ⊕b =a ⊕b

a(a ⊕ c ) = ab ⊕ ac

EJERCICIOS PARA RESOLVER POR EL ALUMNO


EJERCICIO 1:
Obtener las 16 tablas de verdad, y por lo tanto, las 16 funciones diferentes a que
dan lugar las 4 combinaciones de dos variables de entrada. Posteriormente, simplificar aplicando
los teoremas del álgebra de Boole, e indicar las expresiones duales de los resultados.

EJERCICIO 2:
Indicar cual de las siguientes igualdades es correcta, haciendo uso de las leyes
de De Morgan.

(
ab + a c + c b = a + b )(a + c )(c + b )

(a + b + c)(a + b + c ) + ab = (abc + abc)(a + b)


EJERCICIO 3:
Dadas las siguientes funciones, representadas mediante la expresión canónica por
comprensión de suma de productos y producto de sumas, obtener las representaciones de las mismas
en la forma de producto de sumas y suma de productos respectivamente.

f (a, b, c, d ) = ∑ (4,6,8,9,14,15)
4

14
f (a, b, c ) = ∏ (1,2,5,6)
3

EJERCICIO 4:
Obtener la tabla de verdad y la función canónica por extensión en la forma de
suma de productos de una función de 4 variables que toma el valor 0 cuando 2 variables toman el
valor 0.

PARTE B: SIMPLIFICACIÓN DE FUNCIONES

EJERCICIOS PARA RESOLVER EN CLASES

EJERCICIO 1:
Minimizar por el método de karnaugh las funciones expresadas en la forma
canónica por extensión del Ejercicio N0 2 del práctico anterior.
EJERCICIO 2:
Minimizar por el método de Karnaugh las siguientes funciones expresadas en la
forma canónica por comprensión.

a) f (a, b, c ) = ∑ (2,4,5,7)
3

b) f (a, b, c, d ) = ∏ (1,4,5,7,8,10,11,14,15)
4
RESOLUCIÓN
f (a, b, c, d ) = ∏ (1,4,5,7,8,10,11,14,15)
4

ba
00 01 11 10
dc
00 0 1 0 0

01 1 1 1 0

11 0 0 1 1

10 1 0 1 1

f ( a, b, c, d ) = (b + d )(a + b + d )(b + c + d ( a + c + d )( a + c + d )

EJERCICIO 3:

15
Las siguientes expresiones corresponden a funciones minimizadas expresadas
en la forma de suma de productos. Obtener las funciones minimizadas expresadas en la forma de pro-
ducto de sumas correspondientes.

f (a, b, c, d ) = bcd + b c d + a c + a bd
f (a, b, c, d ) = a bc + bd + acd
f (a, b, c, d ) = a b + bd + b c

EJERCICIO 4:
En un sistema digital que opera con el código BCD EXS 3 se desea imple-
mentar un generador de paridad impar. Indicar la función más simple, ya sea en la forma de producto
de sumas ó suma de productos que satisface el requisito.

EJERCICIOS A RESOLVER POR EL ALUMNO


EJERCICIO 1:
Minimizar por el método de Karnaugh las siguientes funciones expresadas en la
forma canónica por comprensión.

a) f (a, b, c, d ) = ∑ (1,2,4,6,7,8,12,13,15)
4

b) f (a, b, c, d ) = ∏ (2,4,5,6,9,10,11,14,15)
4

EJERCICIO 2:
Minimizar las siguientes funciones y determinar si son más simples sus expre-
siones de producto de sumas ó suma de productos.

a) f (a, b, c, d ) = ∑ (2,3,4,6,9,10,11,12,14,15)
4

b) f (a, b, c, d ) = ∏ (1,5,6,7,8,11,14,15)
4

c) f (a, b, c, d ) = ∑ (1,2,8,9)
4

d) f (a, b, c, d ) = ∏ (2,5,6,8,9,10,13)
4

EJERCICIO 3:
Minimizar por Karnaugh las siguientes funciones y dar el resultado en la forma
de producto de sumas.

f (a, b, c, d ) = (a ⊕ bc ) + (ab ⊕ cd )

16
f (a, b, c, d ) = a(bc ⊕ ab) + ac(bd ⊕ a )(c ⊕ d )

EJERCICIO 4:
En un registro de 4 bits, cuyas salidas están disponibles al exterior, se almacena infor-
mación numérica decimal en el código BCD Natural. Se desea implementar un sistema digital que
detecte cuando el número contenido en el registro es superior a 6 e inferior a 3. Indicar la función más
simple, ya sea en la forma de producto de sumas ó suma de productos que satisface el requisito.

17
TRABAJO PRÁCTICO NO 4

SISTEMAS COMBINACIONALES

EJERCICIOS A RESOLVER EN CLASE


EJERCICIO 1:
Diseñe un sistema combinacional que accione el motor de un limpiaparabrisas sa-
biendo que éste funciona cuando la llave general del auto está en contacto, y además, se activa el con-
trol del limpiaparabrisas, pero si desactiva este último, el motor sigue funcionando hasta que las esco-
billas lleguen al costado izquierdo.
Obtener la solución más simple, e implementarla con las compuertas correspondientes.
RESOLUCIÓN:
Vamos a llamar C a la variable de la llave de contacto del auto.
Vamos a llamar M a la variable que acciona el motor del limpiaparabrisas.
Vamos a llamar L a la posición de la escobilla, vale 1 cuando está a la derecha.
C M L F
0 0 0 0
0 0 1 0
0 1 0 0
0 1 1 0
1 0 0 0
1 0 1 1
1 1 0 1
1 1 1 1

ML
00 01 11 10
C
0 0 0 0 0

1
0 1 1 1
F = MC + LC = C ( M + L )
M
M
L
C
F
C F
C
L

EJERCICIO 2:
Realizar el diseño e implementación de dos llaves de luz colocadas al pie y cima
de una escalera; de tal manera que pueda prender la luz de la llave de abajo y apagarla con la llave de
arriba y viceversa.

EJERCICIO 3:
Utilizar decodificadores para implementar las siguientes funciones:

18
1. f (a, b, c, d ) = ∑ (0,6,8,10)
4

2. f (a, b, c, d ) = ∑ (1,5,7,8,13)
4

EJERCICIO 4:
Realizar el diseño de un comparador de dos números de dos bits c/u. Este sistema
tiene que tener 3 salidas la de mayor, menor e igual. Realizar el diseño con compuertas nand.

EJERCICIOS A RESOLVER POR EL ALUMNO

EJERCICIO 1:
Diseñar un sistema combinacional que ante la excitación de 4 variables de entrada
genere salidas que activen un display de 7 segmentos para la representación de los dígitos decimales
sobre el mismo. Considerar que las combinaciones de entrada corresponden al código BCD 8421, y
que las restantes a las 16 posibles a las letras del alfabeto a, b, c, d, e y f . Obtener la solución más
simple, e implementarla con las compuertas NOR.

EJERCICIO 2:
Diseñe un sistema digital de semaforización para una estación terminal de ferro-
carril. Como se observa en la figura, a dicha estación acceden 4 líneas de diferentes tipos de servicios
con las siguientes prioridades:
1) Servicio Expreso ( SE)
2) Servicio Corta Distancia Diferencial (SCDD)
3) Servicio Corta Distancia Común (SCDC)
4) Servicio Larga Distancia. (SLD)

Censores en cada línea indicarán ó no la presencia de vehículos, y semáforos


en rojo ó en verde detendrán ó habilitarán el paso respectivamente. Obtener la solución más simple, e
implementarla con las compuertas correspondientes.

SE

SLD

SCDC

SCDD

EJERCICIO 3:
Un registro de salida en paralelo A0 a A3 contiene un carácter codificado en
BCD 5421. Realizar un generador de paridad para agregar el correspondiente bit Ap que permita elegir
paridad par o impar, con una llave selectora. Utilizar decodificadores y multiplexores

19
EJERCICIO 4:
El diagrama de la figura indica el sistema de arranque de un motor eléctrico.
Existen cuatro variables binarias de control las cuales permitirán el arranque del motor sólo cuando
existe paridad impar entre ellas. Hay dos casos especiales, llamados de emergencia que permitirán
arranque, y ocurren cuando todas las variables están en uno ó cero simultáneamente.
Realizar con compuertas.

Siasdfgfstem
V
V1

V2 Sistema
de
AaArranquefd Motor

V3 Sistemadfffsd
sdvcsdffsdfsdf
zxvcfdsfsdfsdf
V4 Sistrema
Arranquede
arranqueSis

EJERCICIO Nº 5

ESPECIFICACIONES

o Objetivo: Diseñar un circuito digital, capaz gobernar un robot, haciendo que éste siga una línea negra pinta-
da sobre un fondo blanco.
o Censores: El robot está dotado de dos censores digitales capaces de diferenciar el color
negro del blanco. La salida de estos censores es ’0’ cuando leen blanco y ’1’ cuando leen negro. Denominare-
mos a este bit como C:

Censor C
Color Blanco 0
Color Negro 1

o Motores: Dos motores de corriente continua que son controlados cada uno mediante dos bits, denominados
S y P, descritos mediante la siguiente tabla de verdad:

P S Motor
0 0 Parado
0 1 Parado
1 0 Giro derecha
1 1 Giro izquierda

20
El bit P es el bit de ’Power’. Indica si el motor está conectado o no. El bit S es el del
sentido de giro. Según su valor el motor girará a la derecha o a la izquierda (siempre que
el motor esté activado, con P=1).

o El robot: El esquema del robot es el siguiente (visto desde arriba):

o Algoritmo: El algoritmo para seguir la línea negra es muy sencillo. Mientras los dos censores detecten ne-
gro, el robot deberá avanzar. Cuando el censor de la derecha detecte blanco y el de la izquierda negro, el ro-
bot girará a la izquierda y cuando ocurra el caso contrario girará a la derecha. Si ambos censores leen blanco
permanecerá parado. Esto se esquematiza en la siguiente figura:

DIAGRAMA DE BLOQUES

Como primera fase del diseño tenemos que entender qué es lo que se nos está pidiendo y
determinar el aspecto que tiene el circuito que hay que realizar. El circuito tendrá dos entradas prove-
nientes de los censores, C1 y C2, y cuatro salidas, dos para cada motor: S1, P1 S2 y P2.

21
TABLA DE VERDAD

Ahora hay que definir el comportamiento del circuito, utilizando una tabla de verdad. Este comporta-
miento nos lo da el algoritmo de seguir la línea. La tabla de verdad es la siguiente:
Con una ’x’ se han marcado las casillas de la tabla de verdad que es indiferente su valor.

Según nos convenga puede valer ’0’ ó ’1’. El Karnaugh del circuito es:

IMPLEMENTACIÓN DEL CIRCUITO


El circuito, implementado con puertas lógicas básicas es el siguiente:

22
Si lo construimos utilizando puertas TTL, necesitamos dos integrados, uno para los inversores y otro pa-
ra la puerta OR. Si en vez de ello lo implementamos sólo con puertas NAND, el circuito es el siguiente:

EJERCICIO Nº 6

Construir un multiplexor de 8 canales a partir de multiplexores de 2 canales.

La solución es conectarlos en cascada:

Primero colocamos una columna de 4 multiplexores de dos entradas, para tener en total 8 entradas. To-
das las entradas de selección de esta primera columna se unen. Por comodidad en el dibujo, esto se representa
mediante una línea vertical que une la salida S de un multiplexor con el de abajo.
A continuación colocamos una segunda columna
de 2 multiplexores de 2 entradas, también con sus entra-
das de selección unidas. Finalmente colocamos una últi-
ma columna con un único multiplexor de 2 entradas.
Colocados de esta manera, conseguimos tener un
multiplexor de 8 entradas y tres entradas de selección. La
única consideración que hay que tener en cuenta es que la
entrada de selección de los multiplexores de la primera
columna tiene peso 0, la segunda peso 1 y la última peso
2:

23
Vamos a comprobar qué ocurre si seleccionamos el canal 6. Introducimos en binario el número 6 por las
entradas de selección S2, S1, S0.
Por la entrada S de los multiplexores de la primera columna se introduce un ’0’, por lo que estos multi-
plexores sacan por sus salidas lo que hay en sus entradas I0. Por la entrada de selección de los multiplexores de
la segunda columna se introduce un ’1’ por lo que están seleccionando su canal I1. A la salida de estos multi-
plexores se tendrá I2 e I6. Finalmente, el multiplexor de la última columna está seleccionando su entrada I1, por
lo que la salida final es I6.

EJERCICIO Nº 7

Realizar un detector de desbordamiento aritmético.


El intervalo de valores que podemos representar mediante números de n bits en el sistema numérico de
complemento a dos es:

-2n-1 <=N<= 2n-1 - 1


Cualquier operación aritmética que intente generar un valor fuera de este intervalo producirá una condición

de desbordamiento. En estos casos el número resultante de n bits no es una representación válida del resul-

tado; por tanto hay que detectar todas las condiciones de desbordamiento, de modo que no se utilicen estos

resultados nos válidos.

En complemento a dos, se tienen condiciones de desbordamiento cuando se suman dos valores positivos
cuya suma es mayor que 2n-1 – 1 o dos valores negativos cuya suma es menor que -2n-1 – 1. En ambos casos el
resultado tiene el bit de signo incorrecto. Por lo tanto, detectamos el desbordamiento observando los bits de
signo de los operandos y del resultado.
En la siguiente tabla se observan las situaciones que pueden ocurrir en la etapa más significativa de un
sumador de n bits. Los bits an-1 y bn-1 representan los bits de signo de los números a sumar, así que son las entra-
das de esta etapa, junto con el bit de acarreo cn-2. Las salidas de esta etapa son Cn-1 y Sn-1.
Ocurre desbordamiento en dos casos: la suma de dos valores positivos que producen un bit de signo Sn-
1 =1, lo que indica resultado negativo, y la suma de dos números negativos que produce un bit de signo Sn-1=0, lo
que indica un resultado positivo. La expresión lógica de desbordamiento V es:

24
V = an-1. bn-1. Sn-1. + an-1. bn-1. Sn-1

La siguiente figura muestra el circuito de la ecuación anterior.

25
TRABAJO PRÁCTICO NO 5

SISTEMAS SECUENCIALES

EJERCICIOS PARA RESOLVER EN CLASE


EJERCICIO 1:
Realizar la tabla de verdad de este biestable

S Q

Q
R

RESOLUCIÓN:
R S Q(t) Q(t+1)
0 0 0 0
0 0 1 1
0 1 0 1
0 1 1 1
1 0 0 0
1 0 1 0
1 1 0 X
1 1 1 X
EJERCICIO 2:
Explicar el significado del siguiente cuadro que con brevedad sinte-
tiza la utilización del biestable J-K como R-S, T ó D.

JK Q*
J=K=T 00 Q J=S;
K=R
J=R=D 01 1 J=S;
10 1 K=R
J=K=T 11 Q

EJERCICIO 3:
Deducir si el siguiente flip-flop es síncrono ó asíncrono, y cual es su funcio-
namiento.

26
D Q D Q

CK Q CK

Contadores Síncronos.

EJERCICIO 4:
Determinar en que código se lleva el contaje en el siguiente registro
de desplazamiento realizado con biestables J-K. Suponer que inicialmente
QO=Ql=Q2=Q3=0.

J Q0 J Q1
J Q2 J Q3
T T T T
K Q0 K Q1 K Q2 K Q3

IMPULSOS

Contadores asíncronos.

EJERCICIO 5:

1. Contador binario ascendente.

La figura presenta un contador binario de cuatro bits conectado para que funcione de
modo asíncrono (la entrada de reloj sólo está conectada al primer flip-flop). El segundo
flipflop se dispara mediante la señal Q0 (salida del primer flip-flop), el tercer flip-flop me-
diante la señal Q1 (salida del anterior) y así sucesivamente. Cada flip-flop cambia durante
el flanco descendente de la señal que se aplica a su entrada de reloj.

El contador de cuatro bits dispone de dieciséis estados diferentes (24 =16).Hay que te-
ner en cuenta que Q0 representa el bit menos significativo (LSB) y Q3 el bit más significa-
tivo (MSB).

27
Realizar la secuencia de estados del contador en una tabla, para Q3, Q2, Q1 y Q0 y el
diagrama de tiempos del contador.

RESOLUCIÓN:

EJERCICIOS A RESOLVER POR EL ALUMNO

EJERCICIO 1:

2. Contador binario descendente.

En la figura se observa un contador asíncrono binario descendente de cuatro bits.


El circuito es similar al anterior, con la excepción de que las entradas de cada flip-flop se
conectan a la salida complementaria del flip-flop anterior. Cada flip-flop bascula al recibir
un flanco descendente en su señal de reloj, que en este caso se produce cuando la salida
anterior cambia de ‘0’ a ‘1’, o lo que es lo mismo la salida complementaria cambia de ‘1’ a
‘0’.

Realizar la secuencia de estados del contador en una tabla, para Q3, Q2, Q1 y Q0 y el
respectivo diagrama de tiempos.

EJERCICIO 2:
Realizar los diagramas en bloque de los cuatro registros de despla-
zamiento: entrada serie salida serie, entrada serie salida paralelo, entrada paralelo salida
serie y entrada paralelo salida paralelo.

28
EJERCICIO 3:
a) A partir de un biestable SR, obtener un JK.
b) A partir de un biestable JK, obtener un biestable T.
c) A partir de un biestable SR, obtener un biestable D.

EJERCICIO 4:
Determinar el Sistema combinacional necesario para indicar que los
contadores binarios han alcanzado el valor equivalente decimal 66, e inicie el conteo nue-
vamente desde 0.

Impulsos
Contador Contador
Binario Natural Binario Natural

Sistema
Combinacional

29
TRABAJO PRÁCTICO Nº 6

MEMORIAS

PARTE A: MEMORIAS

EJERCICIOS PARA REALIZAR EN CLASES

EJERCICIO 1:
Determinar cual es el valor de n1 y n2, si la memoria es de: 4 Kbytes, 64
Kbytes, 1Mbytes, 4096 palabras de 32 bits, 65536 palabras de 16 bits o 524288 palabras
de 64 bits.

Memoria de Acceso
n2 Aleatorio
Bus de [RAM]
Direcciones

n1 Bus de Datos

EJERCICIO 2:
Cuantos bits de direccionamiento son necesarios para la localización
de una palabra en una memoria de 256 posiciones y de una de 1024 .

EJERCICIO 3:
¿Cuantos bits posee una memoria de 32Kx8, siendo 32K la cantidad
de posiciones a direccionar y 8 la cantidad de bits de cada posición o palabra? ¿Cuantos
bits de direccionamiento son necesarios?
EJERCICIO 4:
Se tienen dos memorias RAM de 256 posiciones cada una. ¿Cuantos
bits se necesitarán para direccionar a ambas de manera de obtener una memoria de 512
posiciones? Realizar una posible conexión.

EJERCICIO 5:
Realizar una memoria de 2K X 8, partiendo de pastillas de 1K X 4.

30
EJERCICIO 5:

EJERCICIOS A RESOLVER POR EL ALUMNO


EJERCICIO 1:
Disponemos de memorias RAM de 1kbytex8 y queremos realizar un
banco de memoria de 4kbytesx16. Realizar la posible conexión y determinar cuantos bytes
tiene el bus de direcciones, datos y control.

PARTE B: ENSAYO PRÁCTICO DE UNA MEMORIA RAM CI: 6810

La finalidad del circuito de la figura, es la de analizar el modo


de programar y leer una serie de datos en una memoria del tipo RAM estática.
Para evitar utilizar siete interruptores para direccionar la memoria en
forma manual (A0, A1, A2, A3 , A4 , A5, A6), se utilizará un oscilador (1555) y un contador
binario (4020) que pueda suministrar las 128 combinaciones posibles de direcciones de
entrada, en forma secuencial automática.
La lectura de datos se hace a través de los LED (D0, D1, ....., D7).
Mientras que el procedimiento de escritura se realiza mediante los
interruptores (T0, T1, ...., T7).

Veamos como realizamos el proceso :

Presionando el pulsador P0, arranca el generador de pulsos (1555),


que los inyecta a la entrada de reloj del contador binario (4020) y éste comienza a contar.
A través de los LED indicadores de direcciones el contador nos muestra la cuenta binaria
de las direcciones de entrada a la RAM. Cuando llega al número de la dirección que que-
remos visualizar, ó sea leer ó escribir un dato, pulsamos nuevamente P0 para detener el

31
generador de pulsos, de tal manera que queda direccionada la memoria en ese valor (por
ejemplo la posición No 6, tendríamos A1 y A2 encendidos y el resto apagados.
En los LED de salida de datos, podremos leer directamente la información almacenada en
esa ubicación de la memoria. Por ejemplo puede aparecer el número 15 decimal , que se
manifiesta con los LED de salida de la siguiente manera D0, D1, D2 yD3 encendidos (va-
lor lógico 1) y el resto apagados (valor lógico cero).
Si se desea borrar el número almacenado en esta dirección, bastará con pulsar P2 , con to-
dos los interruptores T0, T1, ...., T7 abiertos. De este modo todas las salidas se ponen en
cero, dado que en realidad hemos escrito un 00000000.
Para escribir un dato en esta dirección, por ejemplo el número 14 en binario, se deberá
cerrar los interruptores T1, T2 y T3 con lo cual grabamos 1 en c/u de ellos. Luego pul-
sando brevemente P2 quedará registrado este número en la memoria y los estados de la
salidas quedan:

D7 D6 D5 D4 D3 D2 D1 D0
0 0 0 0 1 1 1 0

Una vez escrito el dato en la dirección número 6, se deben abrir todos los interruptores T1,
T1, ......, T7 y podremos pasar a una nueva dirección, por ejemplo la número 7. Para ello se
cierra nuevamente P0 hasta observar la dirección deseada en los LED A0, A1, ...., A6. Se
prepara el dato a escribir mediante los interruptores T1, T2, ...., T7 y se graba el dato en la
memoria pulsando brevemente P2.
Una vez completada toda la programación de la memoria (escritura), se procede a resetear
el contador de direcciones (4020) pulsando brevemente P1; y con la llave P0 cerrada el
contador comienza a habilitar las sucesivas direcciones de la memoria, mostrando se-
cuencialmente los datos en ella escritos.

NOTA 1: Los interruptores T1, T2, ....., T7 deben permanecer siempre abiertos, salvo
en el caso del proceso de escritura, para lo cual se debe cerrar el interruptor
donde se
desee escribir un uno. Una vez escrito el mismo ( luego de pulsar P2 ),
los interruptores T cerrados deberán abrirse nuevamente.
NOTA 2: Es necesario recordar que en este tipo de memoria, si se corta la alimentación
de 5V, se pierde la información registrada en la misma.
NOTA 3: Debido a que en el circuito se utiliza una sola memoria, las entradas de control
“chip select” han sido habilitadas en forma permanente: CS1, CS2, CS4, CS5
con estado “0” y CS0, CS3 con un “1”.

32
33
TRABAJO PRÁCTICO NO 7

PROGRAMACIÓN DE UNA COMPUTADORA ELEMENTAL DIDÁCTICA


SIMULADOR PARA COMPUTADORA ELEMENTAL DIDÁCTICA

Previo a la resolución de los ejercicios que a continuación se indican,


se efectuará una descripción de un simulador didáctico de la computadora elemental didác-
tica BLUE, de los procedimientos para la utilización del mismo, y de igual forma, un aná-
lisis de una computadora personal, sus periféricos y el sistema operativo para el acceso a
dicho programa.

Verificar los programas de los Ejercicios NO 3, NO 4, NO 5, NO 6, NO


7, N 8, N 9, N 10, NO 11, NO 12, N O 13 y NO 14 del TRABAJO PRACTICO, utilizan-
O O O

do el simulador para la ejecución, en forma ficticia, del programa, ya sea paso a paso, ó de
una sola vez. Genere un informe por cada verificación imprimiendo pantalla para cada
ejercicio; explicando los procedimientos seguidos y los comentarios del caso.

EJERCICIOS PARA RESOLVER EN CLASE


EJERCICIO 1:
¿Cuál es el efecto de las siguientes instrucciones en octal?. Indique
el mnemónico correspondiente.

177777 137701
140277 013150
042322 125000
075303 104210
063501

EJERCICIO 2:
Complete el siguiente cuadro con las restantes formas de representa-
ción.
-------------------------------------------------------------------------------------------------------------
mnemónico octal binario
-------------------------------------------------------------------------------------------------------------
ADD 50 -- --
-- 150510 --
-- -- 1111000001001000

NOT 33 -- --
-- -- 0011000001010110
-- 110350 --

XOR 276 -- --
-------------------------------------------------------------------------------------------------------------

34
EJERCICIO 3:
Escriba un programa comenzando en la ubicación 400 que intercam-
bie los contenidos de las ubicaciones 550 y 551. Expresarlo en representación octal y
mnemónica.

RESOLUCIÓN:

o400 LDA 550


o401 STA 552
o402 LDA 551
o403 STA 550
o404 LDA 552
o405 STA 551
o406 HLT 0000

EJERCICIO 4:
Escriba un programa que comience en la ubicación 550 que efectúe
la operación lógica AND entre el contenido de la ubicación 560 y 563. Depositar el resul-
tado en 560 e indicar el valor resultante en octal a partir de los siguientes datos en decimal:

(560) = +1307

(563) = +2431

EJERCICIO 5:
Proyecte una secuencia de instrucciones que efectúe un salto a la
ubicación 255 si el contenido de la dirección 300 es cero, y a la ubicación 333 si el conte-
nido es distinto de cero.

EJERCICIO 6:
Escriba un programa que efectúe el cuadrado de un número por su-
mas sucesivas de valores impares. Suponga que dicho número puede ser positivo o negati-
vo.

EJERCICIO 7:
Escriba un programa que efectúa la raíz cuadrada de un número por
restas sucesivas de valores impares. Suponga que dicho número es siempre positivo.

EJERCICIO 8:
Suponga que la Blue debe ser dotada del doble de instrucciones.
¿Cómo modificaría la estructura de la palabra, manteniendo su longitud con dicho objeto?.
¿Cuántas palabras pueden direccionarse directamente según su propuesta?.

35
EJERCICIO 9:
Suponga que la Blue debe ser dotada de direccionamiento directo e
indirecto, usando las mismas instrucciones de referencia a memoria. ¿Cómo modificaría la
estructura de la palabra, manteniendo su longitud con dicho objeto?. ¿Cuántas palabras
pueden direccionarse directamente e indirectamente según su propuesta?.

EJERCICIO 10:
Escriba un programa que efectúe una multiplicación entre dos núme-
ros usando el método de las sumas sucesivas.

o100 o000005 ;multiplicando


o101 o000004 ;multiplicador
o102 ;resultado
o103 o000001 ;k=1
o104 ;contador= -multiplicador
o105 o177777 ;j=-1

o106 o060100 ;lda 0100


o107 o070102 ;sta 0102
o110 o060101 ;lda 0101
o111 o010105 ;add 0105
o112 o050000 ;not 0000
o113 o070104 ;sta 0104
o114 o060102 ;lda 0102
o115 o010100 ;add 0100
o116 o070102 ;sta 0102
o117 o060104 ;lda 0104
o120 o010103 ;add 0103
o121 o070104 ;sta 0104
o122 o110114 ;jma 0114
o123 o000000 ;hlt

EJERCICIO 11:
Escriba en instrucciones de la blue el siguiente código, parte de un
programa de lenguaje de alto nivel tipo C++, considerando que todas las variables son en-
teras, y proponiendo posiciones de memoria para el almacenamiento de los datos y el pro-
grama.

FOR (I = 0; I <= 10; I = I + 1)


A[I] = B[I] + C;

36
Resolución:

PROGRAMA PARA EL SIMULADOR

Nemónico Codificación Datos


;144 LDA 327 O0144 o060327 ;310 10 B[0]
;145 ADD 323 o0145 o010323 ;311 5 B[1]
;146 JMA 150 o0146 o110150 ;312 15 B[2]
;147 JMP 165 o0147 o120165 ;313 12 B[3]
;150 LDA 310 o0150 o060310 ;314 6 B[4]
;151 ADD 326 o0151 o010326 ;315 7 B[5]
;152 STA 400 o0152 o070400 ;316 18 B[6]
;153 LDA 323 o0153 o060323 ;317 13 B[7]
;154 ADD 325 o0154 o010325 ;320 25 B[10]
;155 STA 323 o0155 o070323 ;400 0 A[0]
;156 LDA 150 o0156 o060150 ;....
;157 ADD 325 o0157 o010325 ;410 0 A[10]
;160 STA 150 o0160 o070150 ;323 0 I
;161 LDA 152 o0161 o060152 ;324 -1 k
;162 ADD 325 o0162 o010325 ;325 1 J
;163 STA 152 o0163 o070152 ;326 7 C
;164 JMP 144 o0164 o120144 ;327 -11
;165 HLT o0165 o000000
o0310 o000010
o0311 o000011
o0312 o000012
o0313 o000024
o0314 o000024
o0315 o000017
o0316 o000016
o0317 o000021
o0320 o000014
o0323 o000000
o0324 o177777
o0325 o000001
o0326 o000007
o0327 o177767

EJERCICIO 12:
Con instrucciones de la Máquina Elemental realizar lo siguiente:

I=o10
While I<0 do
A[I]= B[I]
I=I+1
Break A[I]= o17
done

37
Resolución:

o0000 LDA o0060


o0001 STA o0054
o0002 STA o0070
o0003 LDA o0000
o0004 ADD o0051
o0005 STA o0000
o0006 LDA o0002
o0007 ADD o0051
o0010 STA o0002
O0011 SRJ O0100
o0012 JMA o0017
o0013 LDA o0050
o0014 ADD o0051
o0015 STA o0050
O0016 JMA O0000
O0017 HLT O0000
o0050 NOP o7770 ;-8 o -o10
o0051 HLT o0001
o0052 NOP o7777
o0053 NOP o7761
o0055 JMP o0000
o0060 HLT o0012
o0061 HLT o0024
o0062 HLT o0024
o0063 HLT o0015
o0064 HLT o0016
o0065 HLT o0017
o0066 HLT o0014
o0067 HLT O0013
o0100 IOR O0055
O0101 STA O0110
O0102 LDA O0054
O0103 ADD O0053
O0104 JMA O0107
O0105 ADD O0052
O0106 JMA O0110
O0107 LDA O0051
O0110

EJERCICIO A RESOLVER POR LOS ALUMNOS

EJERCICIO 1:
Escriba un programa que reste dos números que se suponen almace-
nados en memoria y expresados en valor absoluto.

38
EJERCICIO 2:
Escriba un programa en representación octal y mnemónica que co-
mience en la ubicación 200, sume 3 números ubicados en las direcciones 733, 1055 y
3511, y deposite el resultado en la dirección 55. indique el contenido final en binario y
octal del acumulador y de las direcciones de memoria involucradas a partir de los siguien-
tes datos en decimal:

(733) = + 88

(1055) = - 73

(3511) = - 176

(55) = + 13

EJERCICIO 3:
Escriba la representación octal del siguiente programa. ¿Cuál es el
contenido del acumulador y de las ubicaciones 3007, 3010, 3011 3012 después de la ejecu-
ción del programa?.

300 LDA 3007


3002 IOR 3010
3003 AND 3011
3004 STA 3012
3005 OUT 01
3006 HLT
3007 110771
3010 145735
3011 074000
3012 77177

EJERCICIO 4:
Escriba una subrutina que ejecute la OR de 2 datos ubicados en las
direcciones 300 y 301. Tenga en cuenta que dicha subrutina puede necesitarse en distintos
tramos del programa principal, y que ella comienza en la dirección 1100.
indicar expresamente el paso y retomo de la subrutina al programa principal.

EJERCICIO 5:
Escriba en instrucciones de la blue la siguiente expresión algebraica, parte
de un programa de lenguaje de alto nivel tipo C++, considerando que todas las variables
son enteras, y proponiendo posiciones de memoria para el almacenamiento de los datos y
el programa. Realizarlo como subrutina; indicar expresamente el paso y retomo de la sub-
rutina al programa principal.

F = (G + H) - (I + J)
39
TRABAJO PRÁCTICO NO 8

PROGRAMACIÓN DE COMPUTADORA PERSONAL – USO DE DEBUG

PARTE A:

RECONOCIMIENTO DE REGISTROS INTERNOS – PROGRAMAS ELEMENTALES

La resolución de los ejercicios que a continuación se indican, se


efectuará con el programa de DOS llamado DEBUG.EXE, y se imprimirá pantalla para c/u
de ellos.

EJERCICIOS PARA RESOLVER EN CLASE


EJERCICIO 1:
Hacer un listado de los comandos del programa Debug.

EJERCICIO 2:
Hacer que aparezca en forma explícita el contenido y estado de todos
los registros usando el comando r. Luego, el contenido de los registros AX y BX a través
de r AX y r BX, y cambiar los antiguos valores por AX=4567 y BX=89AB.

EJERCICIO 3:

Cargar AX con el valor hexadecimal 2222 y BX con le número


BBAA, efectuar su suma dejando el resultado en AX y anotar el estado de los distintos
registros.

EJERCICIO 4:
Colocar el número hexadecimal E5 en AL; luego el valor 4B en BL
y realizar su suma, dejando el resultado en AX. Verificar el acarreo.

EJERCICIO 5:
Colocar el número FF en los bits menos significativos de AX; al
número 33 en los bits más significativos de AX y realizar el producto lógico entre ambos.

EJERCICIO 6:
Colocar 45 en AX y obtener el complemento a dos.

EJERCICIO 7:
Buscar la codificación hexadecimal del ejercicio anterior.
EJERCICIO 8:
Colocar 1234 en AX; 5678 en BX. Obtener la or exclusiva entre am-
bos, dejando el resultado en AX. Luego obtener la suma lógica entre AX y BX

40
PARTE B:

PROGRAMAS AVANZADOS – OPERACIONES ARITMÉTICAS Y LÓGICAS

EJERCICIO 9:
Crear una tabla de 5 bytes a partir de la dirección 100, con los siguientes
valores en hexadecimal: 41, 45, 49, 4F y 55. Sabiendo que estos valores corresponden a
letras del alfabeto en el código ASCII, diseñe un código que obtenga la posición dentro del
alfabeto de estos caracteres, y los almacene a partir de la dirección 200. Corra el programa,
y diga que caracteres son y que posiciones ocupan en el alfabeto.

EJERCICIO 10:
Confeccionar un programa que sume dos números de 32 bits, contenido en
los registros AX y BX el primero y en CX y DX el segundo. Los 16 bits de menos peso de
los números se encuentran en los registros AX y CX respectivamente y el resultado de su
suma quedará en AX. Los 16 bits de más peso se encuentran en los registros BX y DX,
quedando el resultado de su suma en BX.
Si el resultado de la suma es mayor que 2511, se cargará el valor 0F en la dirección de
memoria 2000 y.en el registro BP. En caso contrario se cargará el valor cero.

EJERCICIO 11:
Realizar un programa que me ordene los 100 primeros números de
menor a mayor. Estando colocados en un bloque de memoria en forma desordenada.

EJERCICIO 12:
Hacer un programa que realice la suma de dos números de 5 bytes.

mov si,1005
mov di,1105
mov cx,6
clc
t1: mov al,[si]
adc al,[di]
mov [si],al
dec si
dec di
loop t1
hlt

e 1000 00 12 fc de ef 10
e 1100 00 fe fb ad cd 23

41
EJERCICIO 13:
Realizar un programa que tome los datos de un bloque de memoria
detecte la paridad impar y los que tengan dicha paridad los copie en otro bloque de memo-
ria.
MOV SI,1000
MOV CX,10
MOV DI,1100
T2: MOV AL,[SI]
TEST AL,AL
JPE T1
MOV [DI],AL
INC DI
T1: INC SI
LOOP T2
HLT

E 1000 78 75 45 49 63 68 79 48 55 56 12 23 28 99 91 95

EJERCICIO 14:
Mover un bloque de datos desde la dirección 150 a la 200.

cld
mov cx,10
mov si,150
mov di,200
rep movsb
hlt

Instrucciones equivalentes al REP MOVSB

JCXZ T2
T1: MOV AL,[SI]
MOV [DI],AL
INC DI
INC SI
LOOP T1
T2: HLT

Como se ve en el Debug

179D:0100 B91000 MOV CX,0010


179D:0103 BE5001 MOV SI,0150
179D:0106 BF0002 MOV DI,0200
179D:0109 F3 REPZ
179D:010A A4 MOVSB
179D:010B F4 HLT

e 150 12 ff df ed 41 58 96 45 ac 36 95 47 78 19 20 21

42
EJERCICIO 15:
Escriba en instrucciones del 8088 el siguiente código, parte de un programa de lenguaje
de alto nivel tipo C++, considerando que todas las variables son enteras, y proponiendo
posiciones de memoria para el almacenamiento de los datos y el programa.

FOR (I = 0; I <= 10; I = I + 1)


A[I] = B[I] + C;
RESOLUCIÓN:

MOV SI,300 300 vector B[I]


MOV DI,500 500 vector A[I]
MOV CX,00 400 constante C
NUEVO: MOV AL,[SI] a CX se le asigna I
ADD AL,[400]
MOV [DI],AL
INC SI
INC DI
INC CX
CMP CX,10
JLE NUEVO
HLT

EJERCICIOS A RESOLVER POR EL ALUMNO


EJERCICIO 1:
Colocar el valor 0EF0 en BX y efectuar un corrimiento de 4 bits a la dere-
cha.

EJERCICIO 2:
Colocar en AX, el contenido de la dirección 200, y obtener su valor absolu-
to, utilizando instrucciones de rotación y de control. Hacer la prueba, colocando en la di-
rección 200 el valor 9E5F y luego con el valor 4E3A.

EJERCICIO 3:
Colocar en AX el contenido de la dirección 300 y contar la cantidad de bits
que tienen el valor lógico 1, utilizando contadores e instrucciones de control. Dejar el re-
sultado en DL. Definir una palabra en la dirección 300 y ejecutar el programa.

EJERCICIO 4:
Trasladar una tabla de bytes de la dirección 500 a la 600 utilizando los re-
gistros de indexación, incrementos, comparaciones e instrucciones de control. El valor fi-
nal de la tabla es FF. Coloque este valor entre las direcciones 500 y 600 y ejecute el pro-
grama. Verifique el funcionamiento haciendo 0500 y 0600.

EJERCICIO 5:
De un bloque de datos determinar los números que son pares y moverlos a
otro bloque de memoria.

43
TRABAJO PRÁCTICO NO 9

PROGRAMAS DE APLICACIÓN CON PERIFÉRICOS


PRÁCTICA DE RECONOCIMIENTO

PARTE A:

UTILIZACIÓN DE INTERRUPCIONES POR SOFTWARE DEL BIOS

EJERCICIO 1:
Se mostrará un programa, utilizando las interrupciones del BIOS,
donde se debe definir un funcionamiento de pantalla de 640x480, gráfico de 16 colores,
VGA, especificando el color de fondo azul con bordes rojos

EJERCICIO 2:
Escribir texto por pantalla:

1. Usar como fin de texto el signo $.


2. Texto: texto a escribir: ¡¡¡ Hola Amigos !!!
n: número de caracteres

EJERCICIO 3:
Se mostrará un programa donde lo que se escribe por teclado
sea presentado en pantalla. Salir del programa utilizando la tecla escape.

PARTE B: PERIFÉRICOS – PLACA ELECTRÓNICA CONECTADA AL PUERTO PARALELO:

TEMA: Periférico de Entrada / Salida (I/O) para señales digitales.

OBJETIVO:
• Que el alumno adquiera los conocimientos prácticos de lectura y escritura de datos
digitales utilizando un periférico conectado al puerto paralelo de impresión.

• Que el alumno conozca y desarrolle rutinas en lenguaje ensamblador del PC-8086


que le permitan controlar elementos externos al computador utilizando el puerto pa-
ralelo.

CONCEPTOS PRELIMINARES:

El puerto paralelo es un dispositivo para el intercambio de datos digitales del PC con el


exterior, siendo su uso generalizado en aplicaciones como el manejo de la impresora, pero
permite el manejo de otros periféricos: comunicación entre PC's, lectura de detectores de
alarmas, control sobre dispositivos de arranque/parada de motores, encendido/apagado de
luces ó activación de alarma sonora..

La interfase paralelo está constituida por tres registros particulares de 8 bit cada uno a
los cuales se puede acceder en forma independiente:

44
-REGISTRO DE DATOS ( salida)
-REGISTRO DE ESTADO ( entrada)
-REGISTRO DE CONTROL (bidireccional)

Estos registros tienen asignadas posiciones en el mapa de memoria del PC: Base, Ba-
se+l y Base+2, dónde "Base" es la dirección inicial de acceso al primer registro de 8 bit,
que habitualmente es:

LPTl: 378H (hexadecimal)


LPT2: 3BC H ( hexadecimal)
LPT3: 278H ( hexadecimal)

Normalmente una PC posee un puerto paralelo, por lo que durante el arranque (booteo),
la dirección real asignada es presentada por el BIOS.
Es posible desde el sistema operativo utilizar comandos externo: DEBUG. En DOS,
DOS\DEBUG; en WINDOW: C:\Document and Settings\Administrador> DEBUG
Esta aplicación permite entre otras cosas, visualizar el contenido de la memoria RAM.
Cuando una PC se inicializa, se cargan 2 archivos básicos en la memoria RAM (el IO.SYS
y el MSDOS.SYS) que tienen por función administrar los recursos internos del PC, re-
cursos del disco, funciones de entrada/salida, y en particular los puertos de acceso dispo-
nibles en el PC.

Esto significa que en el mapa de memoria de un PC-8086, el bloque 0 (recordar que la


memoria se subdivide en 16 bloques de 64KB) contiene las direcciones de los dispositivos
de entrada/salida. Accediendo a un subcomando del DEBUG llamado DUMP (descargar)
se puede consultar las posiciones de memoria en formato segmentado. Desde la posición
0040:0000 a 0040:000F, se leen las direcciones de los puertos asignados en el siguiente
orden:

Comando a ingresar en DEBUG:

-D 0040:0,F (15 Posiciones de memoria RAM a partir de 0040)

0040:0000 F8 03 F8 02 E8 03 E8 02 - 78 03 BC 03 78 02 00 00

COM1 COM2 COM3 COM4 LPT1 LPT2 LPT3 LPT4

Los valores están indicados en hexadecimal y el primer dato del par de posiciones es el
byte menos significativo, es decir, para el puerto LPTl 78 03, significa 0378 en hexade-
cimal.
Para el puerto LPT2 corresponde BC 03, que significa 03BC en hexadecimal. Las direc-
ciones base serán: 0378 y 03BC respectivamente.

45
EL PUERTO PARALELO EN DETALLE:

Desde el punto de vista físico se accede a los 3 registros del puerto paralelo a través de un
conector tipo DB-25 Hembra cuya identificación de pines es la siguiente:

DIRECCION PORT BIT FUNCION LINEA PIN DB-25


----------------------------------------------------------------------------------------------------------
BASE DATOS 0 OUT DATA 0 2
(LPTl:378, 1 OUT DATA 1 3
LPT2:3BC 2 OUT DATA 2 4
LPT3:278) 3 OUT DATA 3 5
4 OUT DATA 4 6
5 OUT DATA 5 7
6 OUT DATA 6 8
7 OUT DATA 7 9
BASE+l ESTADO 0 NC.
(379, 3BD 1 NC.
279) 2 NC.
3 IN ERROR 15
4 IN PTR SELECT 13
5 IN PAPER END 12
6 IN ACK 10
7 IN(inv) BUSY 11

BASE+2 CONTROL 0 I/O(inv) STROBE 1


(37A,3BE 1 I/O INIT 16
27A 2 I/O(inv) SELECT PTR 17
3 I/O(inv) AUTO FEED 14
4 NO USAR IRQ 7/5 ---
5 NC ------------------- ---
6 NC ------------------- ---
7 NC ------------------- ---
Referencia: NC = significa No Conectado.
I/0 = significa Entrada/Salida Digital
inv = significa invertido
OUT= significa Salida digital
IN = significa Entrada digital

Esta descripción de pines indica que :

El Registro de Datos tiene disponibles los 8 bit de salida (OUT)


El Registro de Estado tiene disponibles 5 bit de entrada (IN)
pero el bit 7 tiene la entrada invertida (inv.)
El Registro de Control tiene disponibles 4 bit de entrada/salida (I/O).

Cuando nos referimos a valores invertidos, significa que si la entrada está en un "1" lógi-
co, como ser el bit 7 del registro de estado, el dato es invertido y la PC lee el bit 7 , como
"0" lógico.

46
APLICACION PRÁCTICA
Si se dispone de algún circuito apropiado conectado al puerto
paralelo, es posible mediante instrucciones leer y escribir sobre los registros del puerto
paralelo en forma directa. Esto da una alternativa diferente para establecer un comunica-
ción con elementos externos al PC (una bocina, un relay, un contacto magnético de alarma,
on contacto fin de carrera, etc) o bien leer el estado ó posición de otros dispositivos conec-
tados.
Como ejemplo : se puede implementar una alarma domiciliaria conectando un circuito
apropiado al puerto paralelo, que conste de sensores magnéticos de puerta ó infrarrojos,
información que puede ser leída del Registro de Estado. Según el estado que presente ésta
variable puede tomarse la decisión de accionar una bocina ó el llamador automático tele-
fónico de alarma, con sólo escribir un dato en el Registro de Datos.

PERIFERICO DE ENTRADA/SALIDA DE SEÑALES DIGITALES:


Para realizar este trabajo práctico se utiliza una placa electrónica que se conec-
ta directamente al puerto paralelo del computador. Se alimenta con una batería de
9 Vcc o bien con una fuente de alimentación de +5Vcc regulada, en los terminales de
conexión indicados en la placa (ver gráfico al final).

Con esta placa se realizará la siguiente experiencia:


A) Reconocer el conector DB-25 del puerto paralelo del PC
Si la PC no posee este puerto, tendrá que alimentar la Placa con una fuente de Ali-
mentación Regulada de +5V según como se explicó antes. Con DEBUG verifique las
direcciones de los puertos de que dispone. El PC Conecte la placa al puerto paralelo
correspondiente.

B) Practique realizando operaciones de escritura en el Registro de DATOS del puerto


paralelo. La instrucción a utilizar es: O (output) dirección, dato
Interprete y registre en una tabla que elementos se activan en la placa cuando rea-
liza operaciones de escritura sobre el Registro de DATOS. Establezca la correspon-
dencia entre la posición del bit y el elemento activado (ej.: el bit 0 del Registro de
DATOS activa en la placa un LED rojo, cuando el bit está en "1" el led se enciende).

C) En forma similar practique sobre el Registro de ESTADO para operaciones de lectura


La instrucción a utilizar es: I (input) dirección
Tener en cuenta que hay 3 formas de ingresar datos al puerto paralelo desde la placa
electrónica:
1) Por llave binaria, simulando el ingreso de señales externas.
2) Desde la bornera de acceso.
3) Por dos (2) detectores de la placa (uno magnético y otro de iluminación).
El magnético se conecta a la entrada digital 3 del Registro de ESTADO. Acercando
un imán al detector magnético se observará que el led correspondiente al BIT 3 se en-
ciende. El detector de luz se encuentra conectado a la entrada digital 4 del Registro de
ESTADO. Si el detector es iluminado se observará que el led correspondiente al BIT 4
se enciende.

47
Ejercicio I: Desarrolle un programa mediante el DEBUG que lea el Registro de ES-
TADO y tome una decisión actuando sobre el Registro de DATOS de acuerdo a la si-
guiente tabla de estados:

Entrada 1 Entrada 2 Entrada 3 Entrada 4 Salida Acción


---------------------------------------------------------------------------------------------------
0 0 0 0 BIT 1 0
0 1 0 0 BIT 1 1
1 0 0 0 BIT 1 1
1 1 0 0 BIT 1 0

En este ejemplo se implementa una compuerta Or-Exclusivo (XOR) por software.

Ejercicio II: Utilizando los detectores y actuadores que dispone la placa, desarrollar
por software una alarma domiciliaria. Hacer el programa con DEBUG.

48
TRABAJO PRÁCTICO NO 10
RECONOCIMIENTO DE EQUIPAMIENTO COMPUTACIONAL Y PERIFÉRICOS

Durante el cursado de la materia se realizarán actividades de reconocimiento de equipa-


miento computacional, asociando los conceptos adquiridos desde la teoría con las partes
y/o componentes de una computadora.

Y se realizará un trabajo de investigación, estudio y evaluación, por grupos de alumnos, de


diferentes tipos de periféricos o dispositivos de entrada/salida, de uso corriente en una
computadora. Este trabajo será supervisado por los docentes de la cátedra y se deberá pre-
sentar y exponer en clases. En coordinación con los docentes, y durante la exposición, se
efectuará el reconocimiento de los accesorios y mecanismos, y su relación con los desarro-
llos teóricos adquiridos.

------------------------------------ooooo------------------------------------------

49

También podría gustarte