CATEDRA:
ARQUITECTURA DE LAS COMPUTADORAS
CARRERA:
INGENIERIA EN SISTEMAS DE INFORMACION
AÑO 2010
1
INDICE DE TRABAJOS PRACTICOS
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.
EJERCICIO 2:
Convertir a octal los siguientes números.
EJERCICIO 3:
Convertir a hexadecimal los siguientes números.
EJERCICIO 4:
Convertir a binario los siguientes números.
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 ?.
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.
a) 35 - 21 b) -48 + 21
Resolución punto a)
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
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.
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
0,001= .001 x 80 (en este caso no existe normalización porque se corre la coma de 3 en 3)
010000000001000000000000000000000000
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.
EJERCICIO 3:
Obtenga los números decimales de la siguiente representación en
punto flotante de base 2.
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.
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.
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
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.
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
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.
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
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
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
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.
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
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 )
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.
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.
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
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.
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)
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 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:
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
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
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
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
25
TRABAJO PRÁCTICO NO 5
SISTEMAS SECUENCIALES
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:
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:
EJERCICIO 1:
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
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:
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
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.
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:
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.
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.
36
Resolución:
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:
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?.
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
PARTE A:
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:
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:
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
JCXZ T2
T1: MOV AL,[SI]
MOV [DI],AL
INC DI
INC SI
LOOP T1
T2: HLT
Como se ve en el Debug
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.
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
PARTE A:
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:
EJERCICIO 3:
Se mostrará un programa donde lo que se escribe por teclado
sea presentado en pantalla. Salir del programa utilizando la tecla escape.
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.
CONCEPTOS PRELIMINARES:
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:
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.
0040:0000 F8 03 F8 02 E8 03 E8 02 - 78 03 BC 03 78 02 00 00
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:
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.
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:
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
------------------------------------ooooo------------------------------------------
49