Sunteți pe pagina 1din 50

GUIA DE TRABAJOS PRCTICOS

CTEDRA:
ARQUITECTURA DE LAS COMPUTADORAS

CARRERA:
INGENIERIA EN SISTEMAS DE INFORMACIN

FACULTAD REGIONAL MENDOZA

UNIVERSIDAD TECNOLGICA NACIONAL

AO 2014

INDICE DE TRABAJOS PRCTICOS

PRCTICO 1

PARTE A: SISTEMAS DE NUMERACIN

PAG. 3 - 5

PARTE B: COMPLEMENTACIN BINARIA

PAG. 5 - 6

PARTE C: PUNTO FLOTANTE

PAG. 6 - 7

PRCTICO 2

CDIGOS

PAG. 8 - 12

PRCTICO 3

PARTE A: ALGEBRA DE BOOLE

PAG. 13 - 15

PARTE B: SIMPLIFICACIN DE FUNCIONES

PAG. 15 - 16

PRCTICO 4

SISTEMAS COMBINACIONALES

PAG. 17 - 24

PRCTICO 5

SISTEMAS SECUENCIALES

PAG. 25 - 28

PRCTICO 6

PARTE A: M EMORIAS

PAG. 28 - 30

PARTE B: ENSAYO PRCTICO DE M EMORIA RAM

PAG. 30 - 32

PRCTICO 7

PROGRAMACIN DE UNA COMPUTADORA ELEMENTAL


DIDCTICA Y SIMULADOR

PRCTICO 8

PAG. 33 - 39

PROGRAMACIN DE CPU 8088/8086 USO DEL


EMULADOR EMU8088/86
PARTE A: RECONOCIMIENTO DE INSTRUCCIONES ,
M ODOS DE D IRECCIONAMIENTO Y R EGISTROS

PRCTICO 9

INTERNOS PROGRAMAS ELEMENTALES

PAG. 40 - 42

PARTE B: PROGRAMAS AVANZADOS

PAG. 42 - 44

PROGRAMAS DE APLICACIN CON PERIFRICOS


PARTE A: UTILIZACIN DE INTERRUPCIONES POR
SOFTWARE DEL

BIOS.

PAG. 45 - 45

PARTE B: PERIFRICOS
USANDO PLACA PUERTO PARALELO
PRCTICO 10

PAG. 45 - 49

RECONOCIMIENTO DE EQUIPAMIENTO COMPUTACIONAL


PAG. 50 - 50

Y PERIFRICOS

TRABAJO PRCTICO NO 1
PARTE A: SISTEMAS DE N UMERACIN
EJERCICIOS A RESOLVER EN CLASE
EJERCICIO 1:
Convertir a decimal los siguientes nmeros.
a) 11010100112

b)1BF16

c) 111101,101012

d) 2328

e) 575,548

f) 2CD,516

Resolucin del punto a)


Siempre que se quiera convertir de cualquier sistema de numeracin a decimal el mtodo
ms apropiado es el del polinomio de numeracin.

N a n b n a n1b n1 ..... ai b i ..... a0 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 +0x27 +1x26 +0x25 +1x24 +0x23 +0x22 +1x21 +1x20
11010100112=512+256+64+16+2+1=85110
EJERCICIO 2:
Convertir a octal los siguientes nmeros.
a) l38210

b) 7523,23610

c) 111010012

d) 1011011,10112

e) 45BA16

f) DCBA,2F16

EJERCICIO 3:
Convertir a hexadecimal los siguientes nmeros.
a) 1001101,100112

b) 6748

c) 5272,328

d) 832410

e) 454510

f) 896310

EJERCICIO 4:
Convertir a binario los siguientes nmeros.
a) 157810

b) 359,7510

c) 544,248

d) 637,438

e) DAB,B216

f) EC,9B16

Resolucin parte c)
Cuando quiero convertir un n de cualquier otra base a decimal el mtodo ms 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: 11100111 2
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 conversin completa es: 11100111,112
EJERCICIO 5:
Convertir a base dos el nmero 78,3 en base diez, y volverlo a base diez
apreciando seis bits fraccionarios. Qu conclusiones resultan?.
EJERCICIO 6:
Cul es el mayor nmero decimal que puede ser representado por 3 y 6
dgitos hexadecimales ?.

EJERCICIOS A RESOLVER POR EL ALUMNO


EJERCICIO 1:
Ordenar para los siguientes casos los nmeros de mayor a menor.
a)

b)

c)

(BA3)16

(11001011)2

(8342)10

(E4A)16

(6895)8

(11101101111)2

(1011101)2

(5DFC)16

(7835)10

(BC57)16

(57771)10

(110110111)2

(100)16

(110001011)2

(3761)10

(5075)8

(3D8)16

(907)10

EJERCICIO 2:
Dado el nmero 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:
Cuntos smbolos tendr un sistema de numeracin con base 14?. Indicar
los posibles individuos del mismo.
PARTE B: COMPLEMENTACIN BINARIA
EJERCICIOS PARA RESOLVER EN CLASE
EJERCICIO 1:
Efecte las siguientes operaciones utilizando palabras de 8 bits,
1) Representando los nmeros negativos mediante el convenio de complemento a dos,
2) Representando los nmeros negativos mediante el convenio de complemento a uno.
a) 35 - 21

b)

-48 + 21

c) -25 - (-39)

d)

-63 18

Resolucin punto a)
1) Transformamos una resta en una suma : 35+(-21)
2) Representamos en binario los dos nmeros positivos rellenando con ceros a la
izquierda hasta completar los 8 bits.
3) Complementamos el negativo cambiando ceros por unos y unos por ceros en complemento a uno y adems 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
11101011
100001110 (en C-2 el uno excedente no
se toma en cuenta) (1410 )

00100011
11101010
100001101
1 (se suma el 1excedente en C-1)
00001110 (1410 )

EJERCICIO 2:
Indique cul es el mximo nmero decimal positivo y negativo representado en el convenio de complemento a dos, si se utilizan palabras de 16 bits y 32 bits.

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 cules 1 es destinado para el
bit de signo del nmero, 8 para el exponente y 27 para la mantisa, represente en punto flotante y en base 2, 8 y 16 los siguientes nmeros decimales.
a) 29

b) 52,73

c) 0,125

d) 0,011

Resolucin del punto c)


1) Primero se convierte el nmero al sistema binario.
2) Luego se expresa en notacin cientifica.
3) Se representa en punto flotante.
1) 0,125 = 0,0012
2) 0,001 = .1 x 2-2 ( 0,5 M 1 ) normalizacin de la mantisa
3) el primer bit de la expresin 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 veintisiete bits corresponden a la mantisa.
4) El primer bit es cero por ser el nmero positivo.
5) El exponente se calcula restando 128-2=126 que en binario es 01111110
6) La mantisa es 100000000000000000000000000
001111110100000000000000000000000000 (esta sera la representacin 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 normalizacin 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:
Efecte las siguientes operaciones de acuerdo a la representacin 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 nmeros decimales de la siguiente representacin en punto flotante de base 2.
a) 0 10001101 1110010010100001...

b) 1 01010001 1111010001100001...

EJERCICIO 4:
Indique cules son los mximos y mnimos nmeros positivos decimales
que pueden representarse en el formato de punto flotante indicado en simple y doble precisin, y base 2.
EJERCICIOS PARA SER RESUELTOS POR EL ALUMNO
EJERCICIO 1:
Disponiendo de una palabra de 36 bits, de los cules 1 se destina para el bit
de signo del nmero, 8 para el exponente y 27 para la mantisa, representar en punto flotante y en base 2, 8 y 16 los siguientes nmeros decimales.
a) 25,49

b) 0,66

c) 0,00000073

d) 96,2587

EJERCICIO 2:
Efecte las siguientes operaciones de acuerdo a la representacin 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 nmeros decimales de la siguiente representacin en punto flotante de base 2.
a) 0 00111110 100011110101...

d) 0 10110100 110010011101...

EJERCICIO 4:
Indique cules son los mximos y mnimos nmeros positivos decimales
que pueden representarse en el formato de punto flotante indicado en simple y doble precisin, y base 2. Con un exponente de 7 bits.
7

TRABAJO PRCTICO N O 2
CDIGOS
EJERCICIOS A RESOLVER EN CLASE
EJERCICIO 1:
Realizar la tabla de un cdigo Gray de 5 bits.
EJERCICIO 2:
Realizar la tabla de un cdigo Jhonson de 6 bits.

Indique que caractersticas presenta

este cdigo.
EJERCICIO 3:
Completar el cuadro, segn los cdigos indicados para la codificacin de los nmeros
decimales enunciados. Cules de los cdigos 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 mnima del cdigo BCD Aiken. Obtener a partir de l un
cdigo de paridad impar con la incorporacin de un bit de paridad. Cul es la distancia mnima del
cdigo resultante ?.
EJERCICIO 5:
Realizar la tabla de los cdigos 2 entre 5, y biquinario. Indicar la distancia mnima de
ellos, y la denominacin que reciben estos tipos de cdigos.
EJERCICIO 6:
Realice la tabla del cdigo Hamming para la deteccin y correccin de un bit, tomando
como cdigo base de informacin el BCD 3421.

2p n p 1

342 1
000 0
000 1
001 0

p=n de bits a agregar en el nuevo cdigo


n= n de bits del cdigo 3421 (4)
2 3 4 3 1 8 los p bits los desarrollamos en binario natural
C3 C2 C1

000
8

001 1
010 0
010 1
011 0
011 1
110 1

b1
b2
b3
b4
b5
b6

001
010
011
100
101
110

111 0

b7 1 1 1

los bn equivalen a los bit del nuevo cdigo y estn


codificados en binario natural
los cn se los denomina bits correctores de error y se
calculan de la siguiente manera
c1 b1 b3 b5 b7
c 2 b2 b3 b6 b7

c3 b4 b5 b6 b7
ahora considerando que no hay error al recibir el cdigo nuevo podemos decir que c 1,, c2 y
c3 valen cero y as debido a una propiedad de la or exclusiva podemos extrapolar b 1 , 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 cdigo; ahora confeccionamos el cdigo 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 siguientes nmeros, caracteres smbolos especiales, en el cdigo ASCII de 7 bits.
0; % ; , ; G; ); 3; +; & ; . ; T; ;
EJERCICIO 8:
Indicar a que nmeros, caracteres smbolos especiales pertenecen las combinaciones
del cdigo ASCII de 7 bits si las mismas se representan con los siguientes nmeros en octal.
75 ; 12 ; 105 ; 62 ; 52 ; 13 ; 74 ; 132 ; 55 ; 27
CIFRADO DE DATOS O ENCRIPTACIN
EJERCICIO 9:
Dado el siguiente texto somtalo a un algoritmo de cifrado
UNIVERSIDAD TECNOLOGICA NACIONAL
9

Suponemos por simplicidad que los nicos caracteres de datos que tenemos que manejar son las letras
maysculas 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 letras)
UNIVERSI DAD+TECN OLGICA+ NACIONAL (Los espacios en blanco son ahora mostrados en forma explcita como +)
2).- Reemplazamos cada carcter 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 carcter por la suma mdulo 27 de su codificacin de enteros ms la codificacin de enteros del carcter 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 codificacin de enteros del resultado del paso 4) por su equivalente en caracteres:
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 necesitara en un cdigo Gray; para codificar ngulos de 1 en 1
grados hasta 360 grados.
EJERCICIO 2:
Los cdigos ponderados BCD son aquellos en los que a cada posicin de un dgito binario se le asigna un peso, de forma tal que el nmero decimal equivalente se presenta como: N = Pi x
Xi , - dnde Pi es el peso de la posicin i, y Xi toma el valor 0 1 segn la combinacin, y N vara
entre 0 y 9. Teniendo en cuenta lo indicado,
Cules de los siguientes cdigos son ponderados, y en caso de ser as, cules son los pesos correspondientes?. Para efectuar el anlisis complete con las combinaciones faltantes cada uno de los cdigos.
a)

decimal
1
3
4
7

c)

decimal
1
3
5
7

P3
0
0
0
1

P2 Pl PO
0 0 1
0 1 1
1 0 0
1 0 0

P3
0
0
0
1

P2 Pl PO
0 0 1
0 1 1
1 0 0
1 0 0

b)

decimal
3
5
7
9
d)

decimal
0
1
2
3

P3
0
0
1
1

P2 Pl PO
0 1 1
1 0 1
1 0 1
1 1 1

P3
0
0
0
0

P2 Pl PO
0 0 0
0 0 1
0 1 1
0 1 0

EJERCICIO 3:
Representar el nmero 927 en binario natural y en BCD EXS 3. Comentar el resultado
luego de efectuar un anlisis comparativo sobre la facilidad para obtener las representaciones y la longitud de bits necesarios para cada caso.
EJERCICIO 4:
Cuntos bits tendr el cdigo 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 somtalo 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
Descfrelo utilizando el esquema anterior.

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

NSL+ACFOUOXSIEQAXTEZVGBYTKJT

12

TRABAJO PRTICO N 0 3
PARTE A: ALGEBRA DE BOOLE
EJERCICIOS A RESOLVER EN CLASES
EJERCICIO 1:
Hallar las expresiones cannicas 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

RESOLUCIN:
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

expresin cannica

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

RESOLUCIN
f ( p, q, r ) pqr pq pq r pqr pqr agrupando y sacando factor comn
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 expresin cannica por comprensin 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 funcin cannica por comprensin en la forma de producto de sumas de una funcin de 4 variables que toma el valor 1 cuando 3 ms variables toman el
valor 0.
EJERCICIO 5:
Obtener la tabla de verdad y la funcin cannica por comprensin y extensin en la
forma de suma de productos y producto de sumas de una funcin 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 ec

pa d e c

aba b

aa 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 ca b c ab abc abca b
EJERCICIO 3:
Dadas las siguientes funciones, representadas mediante la expresin cannica por comprensin 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

f a, b, c 1,2,5,6
3

14

EJERCICIO 4:
Obtener la tabla de verdad y la funcin cannica por extensin en la forma de suma de
productos de una funcin de 4 variables que toma el valor 0 cuando 2 variables toman el valor 0.
PARTE B: SIMPLIFICACIN DE FUNCIONES
EJERCICIOS PARA R ESOLVER EN CLASES
EJERCICIO 1:
Minimizar por el mtodo de karnaugh las funciones expresadas en la forma cannica
por extensin del Ejercicio N 0 2 del prctico anterior.
EJERCICIO 2:
Minimizar por el mtodo de Karnaugh las siguientes funciones expresadas en la forma
cannica por comprensin.

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

RESOLUCIN

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

ba
dc
00

00
0

01

11

10

01

11

10

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

EJERCICIO 3:
Las siguientes expresiones corresponden a funciones minimizadas expresadas en la
forma de suma de productos. Obtener las funciones minimizadas expresadas en la forma de producto
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
15

EJERCICIO 4:
En un sistema digital que opera con el cdigo BCD EXS 3 se desea implementar un
generador de paridad impar. Indicar la funcin ms simple, ya sea en la forma de producto de sumas o
suma de productos que satisface el requisito.
EJERCICIOS A RESOLVER POR EL ALUMNO
EJERCICIO 1:
Minimizar por el mtodo de Karnaugh las siguientes funciones expresadas en la forma
cannica por comprensin.

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 ms simples sus expresiones 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
f a, b, c, d abc ab acbd a c d
EJERCICIO 4:
En un registro de 4 bits, cuyas salidas estn disponibles al exterior, se almacena informacin numrica decimal en el cdigo BCD Natural. Se desea implementar un sistema digital que
detecte cuando el nmero contenido en el registro es superior a 6 e inferior a 3. Indicar la funcin ms
simple, ya sea en la forma de producto de sumas suma de productos que satisface el requisito.

16

TRABAJO PRCTICO N O 4
SISTEMAS COMBINACIONALES
EJERCICIOS A RESOLVER EN CLASE
EJERCICIO 1:
Disee un sistema combinacional que accione el motor de un limpiaparabrisas sabiendo
que ste funciona cuando la llave general del auto est en contacto, y adems, se activa el control del
limpiaparabrisas, pero si desactiva este ltimo, el motor sigue funcionando hasta que las escobillas
lleguen al costado izquierdo.
Obtener la solucin ms simple, e implementarla con las compuertas correspondientes.
RESOLUCIN:
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 posicin de la escobilla, vale 1 cuando est a la derecha.
C M L F
0
0
0
0
1
1
1
1

0
0
1
1
0
0
1
1

0
1
0
1
0
1
0
1

0
0
0
0
0
1
1
1
ML

00

01

11

10

C
0
1

F MC LC C (M L)
M

M
C
C
L

F
F

EJERCICIO 2:
Realizar el diseo e implementacin 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:

17

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 diseo de un comparador de dos nmeros de dos bits c/u. Este sistema tiene
que tener 3 salidas la de mayor, menor e igual. Realizar el diseo con compuertas nand.

EJERCICIOS A RESOLVER POR EL ALUMNO


EJERCICIO 1:
Disear un sistema combinacional que ante la excitacin de 4 variables de entrada genere salidas que activen un display de 7 segmentos para la representacin de los dgitos decimales sobre el mismo. Considerar que las combinaciones de entrada corresponden al cdigo BCD 8421, y que
las restantes a las 16 posibles a las letras del alfabeto a, b, c, d, e y f . Obtener la solucin ms simple, e
implementarla con las compuertas NOR.
EJERCICIO 2:
Disee un sistema digital de semaforizacin para una estacin terminal de ferrocarril.
Como se observa en la figura, a dicha estacin acceden 4 lneas de diferentes tipos de servicios con las
siguientes prioridades:
1) Servicio Expreso
( SE)
2) Servicio Corta Distancia Diferencial (SCDD)
3) Servicio Corta Distancia Comn
(SCDC)
4) Servicio Larga Distancia.
(SLD)
Sensores
en cada lnea indicarn no la presencia de vehculos, y semforos en rojo
en verde detendrn habilitarn el paso respectivamente. Obtener la solucin ms simple, e implementarla con las compuertas correspondientes.
SE
SLD
SCDC
SCDD

EJERCICIO 3:
Un registro de salida en paralelo A0 a A3 contiene un carcter 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
18

EJERCICIO 4:
El diagrama de la figura indica el sistema de arranque de un motor elctrico. Existen cuatro variables binarias de control las cuales permitirn el arranque del motor slo cuando existe paridad
impar entre ellas. Hay dos casos especiales, llamados de emergencia que permitirn arranque, y ocurren cuando todas las variables estn en uno cero simultneamente.
Realizar con compuertas.

Siasdfgfstem
V
V1

V2

V3

V4

Sistema
de
AaArranquefd
Sistemadfffsd
sdvcsdffsdfsdf
zxvcfdsfsdfsdf
Sistrema
Arranquede
arranqueSis

Motor

EJERCICIO N 5
ESPECIFICACIONES
o

Objetivo: Disear un circuito digital, capaz gobernar un robot, haciendo que ste siga una lnea negra pintada sobre un fondo blanco.
o Censores: El robot est dotado de dos sensores digitales capaces de diferenciar el color
negro del blanco. La salida de estos sensores es 0 cuando leen blanco y 1 cuando leen negro. Denominaremos a este bit como C:
Sensor
Color Blanco
Color Negro
o

C
0
1

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
0
0
1
1

S
0
1
0
1

Motor
Parado
Parado
Giro derecha
Giro izquierda

El bit P es el bit de Power. Indica si el motor est conectado o no. El bit S es el del
19

sentido de giro. Segn 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):

Algoritmo: El algoritmo para seguir la lnea negra es muy sencillo. Mientras los dos censores detecten negro, el robot deber avanzar. Cuando el censor de la derecha detecte blanco y el de la izquierda negro, el robot 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 diseo 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 provenientes de los censores, C1 y C2, y cuatro salidas, dos para cada motor: S1, P1 S2 y P2.

20

TABLA DE VERDAD
Ahora hay que definir el comportamiento del circuito, utilizando una tabla de verdad. Este comportamiento nos lo da el algoritmo de seguir la lnea. 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.

Segn nos convenga puede valer 0 1. El Karnaugh del circuito es:

IMPLEMENTACIN DEL CIRCUITO


El circuito, implementado con puertas lgicas bsicas es el siguiente:

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

21

EJERCICIO N 6
Construir un multiplexor de 8 canales a partir de multiplexores de 2 canales.
La solucin es conectarlos en cascada:

Primero colocamos una columna de 4 multiplexores de dos entradas, para tener en total 8 entradas. Todas las entradas de seleccin de esta primera columna se unen. Por comodidad en el dibujo, esto se representa
mediante una lnea vertical que une la salida S de un multiplexor con el de abajo.
A continuacin colocamos una segunda columna de 2 multiplexores de 2 entradas, tambin con
sus entradas de seleccin unidas. Finalmente colocamos una ltima columna con un nico multiplexor de
2 entradas.
Colocados de esta manera, conseguimos tener
un multiplexor de 8 entradas y tres entradas de seleccin. La nica consideracin que hay que tener en
cuenta es que la entrada de seleccin de los multiplexores de la primera columna tiene peso 0, la segunda
peso 1 y la ltima peso 2:
Vamos a comprobar qu ocurre si seleccionamos el canal 6. Introducimos en binario el nmero 6
por las entradas de seleccin S2, S1, S0.
Por la entrada S de los multiplexores de la
primera columna se introduce un 0, por lo que estos
multiplexores sacan por sus salidas lo que hay en sus
entradas I0. Por la entrada de seleccin de los multiplexores de la segunda columna se introduce un 1
por lo que estn seleccionando su canal I1. A la salida
de estos multiplexores 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.
22

EJERCICIO N 7
Realizar un detector de desbordamiento aritmtico. El intervalo de valores que podemos representar mediante nmeros de n bits en el sistema numrico de complemento a dos es:
-2n-1 <=N<= 2n-1 - 1
Cualquier operacin aritmtica que intente generar un valor fuera de este intervalo producir
una condicin de desbordamiento. En estos casos el nmero resultante de n bits no es una representacin vlida
del resultado; por tanto hay que detectar todas las condiciones de desbordamiento, de modo que no se utilicen
estos resultados nos vlidos.
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 ms significativa de un
sumador de n bits. Los bits a n-1 y bn-1 representan los bits de signo de los nmeros a sumar, as que son las entradas de esta etapa, junto con el bit de acarreo c n-2 . Las salidas de esta etapa son C n-1 y Sn-1 .
Ocurre desbordamiento en dos casos: la suma de dos valores positivos que producen un bit de signo S n1 =1, lo que indica resultado negativo, y la suma de dos nmeros negativos que produce un bit de signo Sn-1 =0, lo
que indica un resultado positivo. La expresin lgica de desbordamiento V es:

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

23

La siguiente figura muestra el circuito de la ecuacin anterior.

24

TRABAJO PRCTICO NO 5
SISTEMAS SECUENCIALES
EJERCICIOS PARA RESOLVER EN CLASE
EJERCICIO 1:
Realizar la tabla de verdad de este biestable
S

Q
R

RESOLUCIN:
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 sintetiza la
utilizacin del biestable J-K como R-S, T D.

J=K=T
J=R=D
J=K=T

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

1
1
Q

J=S;
K=R

EJERCICIO 3:
Deducir si el siguiente flip-flop es sncrono o asncrono, y cul es su funcionamiento.

25

CK

CK

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

J
T
K

Q0

Q1

Q0

T
K

Q1

J
T
K

Q2
Q2

J
T
K

Q3
Q3

IMPULSOS

Contadores asncronos.
EJERCICIO 5:
1. Contador binario ascendente.
La figura presenta un contador binario de cuatro bits conectado para que funcione de
modo asncrono (la entrada de reloj slo est conectada al primer flip-flop). El segundo
flipflop se dispara mediante la seal Q0 (salida del primer flip-flop), el tercer flip-flop mediante la seal Q1 (salida del anterior) y as sucesivamente. Cada flip-flop cambia durante
el flanco descendente de la seal que se aplica a su entrada de reloj.

El contador de cuatro bits dispone de diecisis estados diferentes (24 =16).Hay que tener en cuenta que Q0 representa el bit menos significativo (LSB) y Q3 el bit ms significativo (MSB).
Realizar la secuencia de estados del contador en una tabla, para Q3, Q2, Q1 y Q0 y el
diagrama de tiempos del contador.
26

RESOLUCIN:

EJERCICIOS A RESOLVER POR EL ALUMNO


EJERCICIO 1:

2. Contador binario descendente.


En la figura se observa un contador asncrono binario descendente de cuatro bits.
El circuito es similar al anterior, con la excepcin 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 seal 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 desplazamiento:
entrada serie salida serie, entrada serie salida paralelo, entrada paralelo salida serie y entrada paralelo salida paralelo.
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.

27

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

Impulsos
Contador
Binario Natural

Contador
Binario Natural

Sistema
Combinacional

28

TRABAJO PRCTICO N 6
M EMORIAS
PARTE A: M EMORIAS
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.

n2
Bus de
Direcciones

Memoria de Acceso
Aleatorio
[RAM]

n1

Bus de Datos

EJERCICIO 2:
Cuantos bits de direccionamiento son necesarios para la localizacin 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 posicin o palabra? Cuantos bits de
direccionamiento son necesarios?
EJERCICIO 4:
Se tienen dos memorias RAM de 256 posiciones cada una. Cuantos bits se
necesitarn para direccionar a ambas de manera de obtener una memoria de 512 posiciones? Realizar una posible conexin.
EJERCICIO 5:
Realizar una memoria de 2K X 8, partiendo de pastillas de 1K X 4.

29

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 conexin y determinar cuantos bytes tiene
el bus de direcciones, datos y control.
PARTE B: ENSAYO PRCTICO DE UNA M EMORIA R AM 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 esttica.
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 automtica.
La lectura de datos se hace a travs 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 travs de los LED indicadores de direcciones el contador nos muestra la cuenta binaria
de las direcciones de entrada a la RAM. Cuando llega al nmero de la direccin que queremos visualizar, sea leer escribir un dato, pulsamos nuevamente P0 para detener el
generador de pulsos, de tal manera que queda direccionada la memoria en ese valor (por
ejemplo la posicin N o 6, tendramos A1 y A2 encendidos y el resto apagados.
30

En los LED de salida de datos, podremos leer directamente la informacin almacenada en


esa ubicacin de la memoria. Por ejemplo puede aparecer el nmero 15 decimal , que se
manifiesta con los LED de salida de la siguiente manera D0, D1, D2 yD3 encendidos (valor lgico 1) y el resto apagados (valor lgico cero).
Si se desea borrar el nmero almacenado en esta direccin, bastar con pulsar P2 , con todos 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 direccin, por ejemplo el nmero 14 en binario, se deber
cerrar los interruptores T1, T2 y T3 con lo cual grabamos 1 en c/u de ellos. Luego pulsando brevemente P2 quedar registrado este nmero 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 direccin nmero 6, se deben abrir todos los interruptores T1,
T1, ......, T7 y podremos pasar a una nueva direccin, por ejemplo la nmero 7. Para ello se
cierra nuevamente P0 hasta observar la direccin 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 programacin 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 secuencialmente 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 debern abrirse nuevamente.
NOTA 2: Es necesario recordar que en este tipo de memoria, si se corta la alimentacin
de 5V, se pierde la informacin 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.

31

32

TRABAJO PRCTICO N O 7
PROGRAMACIN DE UNA COMPUTADORA ELEMENTAL DIDCTICA
SIMULADOR PARA COMPUTADORA ELEMENTAL DIDCTICA
Previo a la resolucin de los ejercicios que a continuacin se indican, se
efectuar una descripcin de un simulador didctico de la computadora elemental didctica
BLUE, de los procedimientos para la utilizacin del mismo, y de igual forma, un anlisis
de una computadora personal, sus perifricos y el sistema operativo para el acceso a dicho
programa.
Verificar los programas de los Ejercicios N O 3 al N O 12 del TRABAJO
PRACTICO, utilizando el simulador para la ejecucin del programa, ya sea paso a paso, o
de una sola vez. Genere un informe por cada verificacin imprimiendo pantalla para cada
ejercicio, explicando los procedimientos seguidos y los comentarios del caso.
EJERCICIOS PARA RESOLVER EN CLASE
EJERCICIO 1:
Cul es el efecto de las siguientes instrucciones en octal?. Indique el mnemnico correspondiente.
177777
140277
042322
075303
063501

137701
013150
125000
104210

EJERCICIO 2:
Complete el siguiente cuadro con las restantes formas de representacin.
------------------------------------------------------------------------------------------------------------mnemnico
octal
binario
------------------------------------------------------------------------------------------------------------ADD 50
---150510
---1111000001001000
NOT 33
---

--110350

-0011000001010110
--

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

EJERCICIO 3:
Escriba un programa comenzando en la ubicacin 400 que intercambie los
contenidos de las ubicaciones 550 y 551. Expresarlo en representacin octal y mnemnica.
33

RESOLUCIN:
o400
o401
o402
o403
o404
o405
o406

LDA 550
STA 552
LDA 551
STA 550
LDA 552
STA 551
HLT 0000

EJERCICIO 4:
Escriba un programa que comience en la ubicacin 550 que efecte la operacin lgica AND entre el contenido de la ubicacin 560 y 563. Depositar el resultado 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 efecte un salto a la ubicacin
255 si el contenido de la direccin 300 es cero, y a la ubicacin 333 si el contenido es distinto de cero.
EJERCICIO 6:
Escriba un programa que efecte el cuadrado de un nmero por sumas sucesivas de valores impares. Suponga que dicho nmero puede ser positivo o negativo.
EJERCICIO 7:
Escriba un programa que efecta la raz cuadrada de un nmero por restas
sucesivas de valores impares. Suponga que dicho nmero es siempre positivo.
EJERCICIO 8:
Suponga que la Blue debe ser dotada del doble de instrucciones. Cmo
modificara la estructura de la palabra, manteniendo su longitud con dicho objeto?. Cuntas palabras pueden direccionarse directamente segn su propuesta?.
EJERCICIO 9:
Suponga que la Blue debe ser dotada de direccionamiento directo e indirecto, usando las mismas instrucciones de referencia a memoria. Cmo modificara la estructura de la palabra, manteniendo su longitud con dicho objeto?. Cuntas palabras pueden
direccionarse directamente e indirectamente segn su propuesta?.

34

EJERCICIO 10:
Escriba un programa que efecte una multiplicacin entre dos nmeros
usando el mtodo de las sumas sucesivas.
o100
o101
o102
o103
o104
o105
o106
o107
o110
o111
o112
o113
o114
o115
o116
o117
o120
o121
o122
o123

o000005
o000004
o000001
o177777
o060100
o070102
o060101
o010105
o050000
o070104
o060102
o010100
o070102
o060104
o010103
o070104
o110114
o000000

;multiplicando
;multiplicador
;resultado
;k=1
;contador= -multiplicador
;j=-1
;lda 0100
;sta 0102
;lda 0101
;add 0105
;not 0000
;sta 0104
;lda 0102
;add 0100
;sta 0102
;lda 0104
;add 0103
;sta 0104
;jma 0114
;hlt

EJERCICIO 11:
Escriba en instrucciones de la blue el siguiente cdigo, 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;
Resolucin:
PROGRAMA PARA EL SIMULADOR

Nemnico
144 LDA 327
145 ADD 323
146 JMA 150
147 JMP 165
150 LDA 310
151 ADD 326
152 STA 400
153 LDA 323
154 ADD 325

Codificacin
o0144 o060327
o0145 o010323
o0146 o110150
o0147 o120165
o0150 o060310
o0151 o010326
o0152 o070400
o0153 o060323
o0154 o010325
35

Datos
310 10
311 5
312 15
313 12
314 6
315 7
316 18
317 13
320 25

B[0]
B[1]
B[2]
B[3]
B[4]
B[5]
B[6]
B[7]
B[10]

155
156
157
160
161
162
163
164
165

STA 323
LDA 150
ADD 325
STA 150
LDA 152
ADD 325
STA 152
JMP 144
HLT

o0155
o0156
o0157
o0160
o0161
o0162
o0163
o0164
o0165
o0310
o0311
o0312
o0313
o0314
o0315
o0316
o0317
o0320
o0323
o0324
o0325
o0326
o0327

o070323
o060150
o010325
o070150
o060152
o010325
o070152
o120144
o000000
o000010
o000011
o000012
o000024
o000024
o000017
o000016
o000021
o000014
o000000
o177777
o000001
o000007
o177767

400
....
410
323
324
325
326
327

A[0]

0
0
-1
1
7
-11

A[10]
I
k
J
C

EJERCICIO 12:
Con instrucciones de la Mquina Elemental realizar lo siguiente:
I=o10
While I<0 do
A[I]= B[I]
I=I+1
Break A[I]= o17
done
Resolucin:
o0000
o0001
o0002
o0003
o0004
o0005
o0006
o0007
o0010
o0011
o0012
o0013
o0014
o0015
o0016

LDA o0060
STA o0054
STA o0070
LDA o0000
ADD o0051
STA o0000
LDA o0002
ADD o0051
STA o0002
SRJ O0100
JMA o0017
LDA o0050
ADD o0051
STA o0050
JMA O0000
36

o0017
o0050
o0051
o0052
o0053
o0055
o0060
o0061
o0062
o0063
o0064
o0065
o0066
o0067
o0100
o0101
o0102
o0103
o0104
o0105
o0106
o0107
o0110

HLT O0000
NOP o7770 ;-8 o -o10
HLT o0001
NOP o7777
NOP o7761
JMP o0000
HLT o0012
HLT o0024
HLT o0024
HLT o0015
HLT o0016
HLT o0017
HLT o0014
HLT O0013
IOR O0055
STA O0110
LDA O0054
ADD O0053
JMA O0107
ADD O0052
JMA O0110
LDA O0051

EJERCICIO 13:
Implemente el BUS comn de la Mquina Elemental sin utilizar elementos de Tercer Estado, dibuje el Diagrama de Tiempo de las seales de control necesarias. Considere slo los
Registros: MBR y ACC.

EJERCICIO 14:
Implemente el BUS comn de la Mquina Elemental utilizando elementos de Tercer Estado, dibuje el Diagrama de Tiempo de las seales de control necesarias. Considere slo los
Registros: MBR y ACC.

EJERCICIO 15:
Se desea cambiar la instruccin XOR XXXX de la Mquina Elemental por la instruccin SUB XXXX. Esta instruccin debe realizar la resta en C2 entre el contenido del registro
ACC y el contenido de la posicin de memoria XXXX, el resultado se ubica en el ACC.
ACC (XXXX) CC
Detalle el (o los) ciclos de ejecucin necesarios para esta instruccin.

EJERCICIO 16:
Realice el circuito de la Unidad de Control Cableada usando un contador y un decodificador para generar los 8 pulsos (CP1 a CP8) del Ciclo de Mquina de la Mquina Elemental.

EJERCICIO 17:
Se desea cambiar la instruccin XOR XXXX de la Mquina Elemental por la instruccin DEC XXXX. Esta instruccin debe realizar el decremento en 1 del ACC, dejando el resultado en el registro.
ACC 1 CC
Detalle el (o los) ciclos de ejecucin necesarios para esta instruccin.
37

EJERCICIO 18:
Se desea agregar al repertorio de instrucciones de la Mquina Elemental la instruccin RET, cuya accin es retornar correctamente desde una subrutina llamada por la instruccin
JSR XXXX. Detalle el ciclo de ejecucin de la nueva instruccin. Indique tambin como debe modificar el ciclo de ejecucin de la instruccin JSR XXXX.

EJERCICIO A RESOLVER POR LOS ALUMNOS


EJERCICIO 1:
Escriba un programa que reste dos nmeros que se suponen almacenados en
memoria y expresados en valor absoluto.

EJERCICIO 2:
Escriba un programa en representacin octal y mnemnica que comience en
la ubicacin 200, sume 3 nmeros ubicados en las direcciones 733, 1055 y 3511, y deposite el resultado en la direccin 55. Indique el contenido final en binario y octal del acumulador y de las direcciones de memoria involucradas a partir de los siguientes datos en decimal:
(733) = + 88
(1055) = - 73
(3511) = - 176
(55)

= + 13

EJERCICIO 3:
Escriba la representacin octal del siguiente programa. Cul es el contenido del acumulador y de las ubicaciones 3007, 3010, 3011 3012 despus de la ejecucin del
programa?.
3001
3002
3003
3004
3005
3006
3007
3010
3011
3012

LDA 3007
IOR 3010
AND 3011
STA 3012
OUT
01
HLT
110771
145735
074000
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 direccin 1100. Indicar expresamente el
paso y retomo de la subrutina al programa principal.
38

EJERCICIO 5:
Escriba en instrucciones de la blue la siguiente expresin 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 subrutina al programa principal.

F = (G + H) - (I + J)

39

TRABAJO PRCTICO N O 8
PROGRAMACIN DE CPU 8088/8086 USO DEL EMULADOR EMU8088/86
PARTE A:
RECONOCIMIENTO DE INSTRUCCIONES , M ODOS DE DIRECCIONAMIENTO Y REGISTROS
INTERNOS PROGRAMAS ELEMENTALES
La resolucin de los ejercicios de programacin se realizarn utilizando el
Emulador EMU8088/8086, y se imprimirn las pantallas para cada uno de ellos.
EJERCICIOS PARA RESOLVER EN CLASE
EJERCICIO 1:
Represente la estructura de la CPU 8088, indicando la composicin interna
de las subunidades BIU y EU, y la conexin con la memoria principal de 1 Mbytes con los
buses correspondientes.
EJERCICIO 2:
Cul es el efecto de las siguientes instrucciones en hexadecimal?. Indique
el mnemnico correspondiente.
F4
BF028B
01D8
35AF00
E900FF
3400

BE503A
B80100
F7D2
F7D9
E822FF
A21300

EJERCICIO 3:
Complete el siguiente cuadro con las restantes formas de representacin.
------------------------------------------------------------------------------------------------------------mnemnico
hexadecimal
binario
------------------------------------------------------------------------------------------------------------MOV CX,DX
---09D8
---0111010111111010
XOR AX, [BX]
----0111001111110110
-F7D9
-INC SI
--------------------------------------------------------------------------------------------------------------EJERCICIO 4:
Indique la cantidad de bytes de almacenamiento y los modos de direccionamiento utilizados en cada una de las instrucciones del cuadro del Ejercicio 1.
40

EJERCICIO 5:
Indique la posicin de memoria a la que se acceder para leer una instruccin, si los contenidos de los registros IP y CS son 1F1A y F341, respectivamente.
EJERCICIO 6:
Suponiendo que los contenidos de los registros DS (Segmento de Datos) y
CS (Segmento de Cdigo) son 024B y B000, respectivamente, indicar la posicin fsica de
inicio y final de los segmentos de datos y de cdigo.
EJERCICIO 7:
Suponiendo que los contenidos de los registros DS (Segmento de Datos) y
CS (Segmento de Cdigo) son C000 y B246, respectivamente, indicar la posicin fsica de
inicio y final de los segmentos de datos y de cdigo. Observa algn problema?.
EJERCICIO 8:
Indicar el valor que queda almacenado en el operando destino despus de
ejecutar cada una de las siguientes instrucciones.
a) ADD AX,BX
b) ADD AX, [BX]
c) ADD BX,0124
d) ADD AL, [1A1B]
e) ADD BX, [SI+1A]
Datos:
AX=1A1B
BX=147A
SI=2682
AL=1B
DS:147A=AB
DS:147B=DC
DS:1A1B=12
DS:269C=21
DS:269D=A2
EJERCICIO 9:
Cargar AX con el valor hexadecimal 2222 y BX con le nmero BBAA,
efectuar su suma dejando el resultado en AX y anotar el estado de los distintos registros.
EJERCICIO 10:
Colocar el nmero hexadecimal E5 en AL; luego el valor 4B en BL y realizar su suma, dejando el resultado en AX. Verificar el acarreo.
EJERCICIO 11:
Colocar el nmero FF en los bits menos significativos de AX; al nmero 33
en los bits ms significativos de AX y realizar el producto lgico entre ambos.

41

EJERCICIO 12:
Colocar 45 en AX y obtener el complemento a dos.
EJERCICIO 13:
Representar la codificacin hexadecimal del ejercicio anterior.
EJERCICIO 14:
Colocar 1234 en AX; 5678 en BX. Obtener la or exclusiva entre ambos,
dejando el resultado en AX. Luego obtener la suma lgica entre AX y BX
PARTE B:
PROGRAMAS AVANZADOS OPERACIONES ARITMTICAS Y LGICAS
EJERCICIO 9:
Crear una tabla de 5 bytes a partir de la direccin 100, con los siguientes
valores en hexadecimal: 41, 45, 49, 4F y 55. Sabiendo que estos valores corresponden a
letras del alfabeto en el cdigo ASCII, disee un cdigo que obtenga la posicin dentro del
alfabeto de estos caracteres, y los almacene a partir de la direccin 200. Corra el programa,
y diga que caracteres son y que posiciones ocupan en el alfabeto.
EJERCICIO 10:
Confeccionar un programa que sume dos nmeros 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 nmeros se encuentran en los registros AX y CX respectivamente y el resultado de su
suma quedar en AX. Los 16 bits de ms 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 direccin 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 nmeros 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 nmeros de 5 bytes.

t1:

mov si,1005
mov di,1105
mov cx,6
clc
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
42

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 memoria.

t2:

t1:

mov si,1000
mov cx,10
mov di,1100
mov al,[si]
test al,al
jpe t1
mov [di],al
inc di
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 direccin 150 a la 200.


cld
mov cx,10
mov si,150
mov di,200
rep movsb
hlt
Instrucciones equivalentes al REP MOVSB

T1:

T2:

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

Como se ve en el EMU 8088/8086


179D:0100 B91000
179D:0103 BE5001
179D:0106 BF0002
179D:0109 F3
179D:010A A4
179D:010B F4

MOV CX,0010
MOV SI,0150
MOV DI,0200
REPZ
MOVSB
HLT

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

43

EJERCICIO 15:
Escriba en instrucciones del 8088 el siguiente cdigo, 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;
RESOLUCIN:

nuevo:

mov si,300
mov di,500
mov cx,00
mov al,[si]
add al,[400]
mov [di],al
inc si
inc di
inc cx
cmp cx,10
jle nuevo
hlt

300 vector B[I]


500 vector A[I]
400 constante C
a CX se le asigna I

EJERCICIOS A RESOLVER POR EL ALUMNO


EJERCICIO 1:
Colocar el valor 0EF0 en BX y efectuar un corrimiento de 4 bits a la derecha.
EJERCICIO 2:
Colocar en AX, el contenido de la direccin 200, y obtener su valor absoluto, utilizando instrucciones de rotacin y de control. Hacer la prueba, colocando en la direccin 200 el valor 9E5F y luego con el valor 4E3A.
EJERCICIO 3:
Colocar en AX el contenido de la direccin 300 y contar la cantidad de bits
que tienen el valor lgico 1, utilizando contadores e instrucciones de control. Dejar el resultado en DL. Definir una palabra en la direccin 300 y ejecutar el programa.
EJERCICIO 4:
Trasladar una tabla de bytes de la direccin 500 a la 600 utilizando los registros de indexacin, incrementos, comparaciones e instrucciones de control. El valor final de la tabla es FF. Coloque este valor entre las direcciones 500 y 600 y ejecute el programa. Verifique el funcionamiento haciendo 0500 y 0600.
EJERCICIO 5:
De un bloque de datos determinar los nmeros que son pares y moverlos a
otro bloque de memoria.

44

TRABAJO PRCTICO NO 9
PROGRAMAS DE APLICACIN CON PERIFRICOS
PRCTICA DE RECONOCIMIENTO
PARTE A:
UTILIZACIN 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, grfico de 16 colores, VGA, especificando el color de fondo azul con bordes rojos
EJERCICIO 2:
Escribir texto por pantalla:
1.
2.

Usar como fin de texto el signo $.


Texto: texto a escribir: Hola Amigos !!!
n: nmero 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: PERIFRICOS PLACA ELECTRNICA CONECTADA AL PUERTO PARALELO:
TEMA: Perifrico de Entrada / Salida (I/O) para seales digitales.
OBJETIVO:
Que el alumno adquiera los conocimientos prcticos de lectura y escritura de datos
digitales utilizando un perifrico conectado al puerto paralelo de impresin.

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


que le permitan controlar elementos externos al computador utilizando el puerto paralelo.

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 perifricos: comunicacin entre PC's, lectura de detectores de
alarmas, control sobre dispositivos de arranque/parada de motores, encendido/apagado de
luces activacin de alarma sonora..
La interfase paralela est constituida por tres registros particulares de 8 bit cada uno a
los cuales se puede acceder en forma independiente:
45

-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, Base+l y Base+2, dnde "Base" es la direccin inicial de acceso al primer registro de 8 bit,
que habitualmente es:
LPTl:
LPT2:
LPT3:

378H (hexadecimal)
3BC H ( hexadecimal)
278H ( hexadecimal)

Normalmente una PC posee un puerto paralelo, por lo que durante el arranque (booteo),
la direccin 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 aplicacin 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 funcin administrar los recursos internos del PC, recursos del disco, funciones de entrada/salida, y en particular los puertos de acceso disponibles 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 posicin
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 estn 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 hexadecimal.
Para el puerto LPT2 corresponde BC 03, que significa 03BC en hexadecimal. Las direcciones base sern: 0378 y 03BC respectivamente.

46

EL PUERTO PARALELO EN DETALLE:


Desde el punto de vista fsico se accede a los 3 registros del puerto paralelo a travs de un
conector tipo DB-25 Hembra cuya identificacin 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
(37A,3BE
27A

Referencia:

CONTROL

NC =
I/0 =
inv =
OUT=
IN =

0
I/O(inv)
1
I/O
2
I/O(inv)
3
I/O(inv)
4
NO USAR
5
NC
6
NC
7
NC
significa No Conectado.
significa Entrada/Salida Digital
significa invertido
significa Salida digital
significa Entrada digital

STROBE
INIT
SELECT PTR
AUTO FEED
IRQ 7/5
-------------------------------------------------------

1
16
17
14
---------

Esta descripcin 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" lgico, como ser el bit 7 del registro de estado, el dato es invertido y la PC lee el bit 7 , como
"0" lgico.
47

APLICACION PRCTICA
Si se dispone de algn 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 comunicacin con elementos externos al PC (una bocina, un relay, un contacto magntico de alarma,
on contacto fin de carrera, etc) o bien leer el estado posicin de otros dispositivos conectados.
Como ejemplo: se puede implementar una alarma domiciliaria conectando un circuito
apropiado al puerto paralelo, que conste de sensores magnticos de puerta infrarrojos,
informacin que puede ser leda del Registro de Estado. Segn el estado que presente sta
variable puede tomarse la decisin de accionar una bocina el llamador automtico telefnico de alarma, con slo escribir un dato en el Registro de Datos.
PERIFERICO DE ENTRADA/SALIDA DE SEALES DIGITALES:
Para realizar este trabajo prctico se utiliza una placa electrnica que se conecta directamente al puerto paralelo del computador. Se alimenta con una batera de
9 Vcc o bien con una fuente de alimentacin de +5Vcc regulada, en los terminales de
conexin indicados en la placa (ver grfico 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 Alimentacin Regulada de +5V segn 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 instruccin a utilizar es: O (output) direccin, dato
Interprete y registre en una tabla que elementos se activan en la placa cuando realiza operaciones de escritura sobre el Registro de DATOS. Establezca la correspondencia entre la posicin 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 instruccin a utilizar es: I (input) direccin
Tener en cuenta que hay 3 formas de ingresar datos al puerto paralelo desde la placa
electrnica:
1) Por llave binaria, simulando el ingreso de seales externas.
2) Desde la bornera de acceso.
3) Por dos (2) detectores de la placa (uno magntico y otro de iluminacin).
El magntico se conecta a la entrada digital 3 del Registro de ESTADO. Acercando
un imn al detector magntico se observar que el led correspondiente al BIT 3 se enciende. 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.

48

Ejercicio I: Desarrolle un programa mediante el DEBUG que lea el Registro de ESTADO y tome una decisin actuando sobre el Registro de DATOS de acuerdo a la siguiente tabla de estados:
Entrada 1
Entrada 2
Entrada 3
Entrada 4
Salida
Accin
--------------------------------------------------------------------------------------------------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.

49

TRABAJO PRCTICO NO 10
RECONOCIMIENTO DE EQUIPAMIENTO COMPUTACIONAL Y PERIFRICOS
Durante el cursado de la materia se realizarn actividades de reconocimiento de equipamiento computacional, asociando los conceptos adquiridos desde la teora con las partes
y/o componentes de una computadora.
Y se realizar un trabajo de investigacin, estudio y evaluacin, por grupos de alumnos, de
diferentes tipos de perifricos o dispositivos de entrada/salida, de uso corriente en una
computadora. Este trabajo ser supervisado por los docentes de la ctedra y se deber presentar y exponer en clases. En coordinacin con los docentes, y durante la exposicin, se
efectuar el reconocimiento de los accesorios y mecanismos, y su relacin con los desarrollos tericos adquiridos.
------------------------------------ooooo------------------------------------------

50

S-ar putea să vă placă și