Vous êtes sur la page 1sur 16

Ejercicios de fundamentos

de los computadores

José Luis Sánchez Romero


Antonio Jimeno Morenilla
David Gil Méndez

Universidad de Alicante

Mª Asunción Pomares Mas

IES Misteri d’Elx, Elche (Alicante)


Título: Ejercicios de fundamentos de los computadores

Autores: © José Luis Sánchez Romero


Antonio Jimeno Morenilla
David Gil Méndez
Mª Asunción Pomares Mas

ISBN: 978-84-8454-764-8
Depósito legal: A-1036-2008

Edita: Editorial Club Universitario Telf.: 96 567 61 33


C/. Cottolengo, 25 - San Vicente (Alicante)
www.ecu.fm

Printed in Spain
Imprime: Imprenta Gamma Telf.: 965 67 19 87
C/. Cottolengo, 25 - San Vicente (Alicante)
www.gamma.fm
gamma@gamma.fm

Reservados todos los derechos. Ni la totalidad ni parte de este libro puede


reproducirse o transmitirse por ningún procedimiento electrónico o mecánico,
incluyendo fotocopia, grabación magnética o cualquier almacenamiento de
información o sistema de reproducción, sin permiso previo y por escrito de los
titulares del Copyright.
ÍNDICE

Prólogo .............................................................................................................5

Parte I. Fundamentos de diseño digital ........................................................7


Capítulo 1. Representación de la información ...........................................9
Capítulo 2. Circuitos combinacionales .....................................................47
Capítulo 3. Sistemas secuenciales ............................................................85

Parte II. El computador elemental Code-2 ..............................................127


Capítulo 4. Lenguaje ensamblador del Code-2 ......................................129

Referencias ..................................................................................................155
PRÓLOGO

El objetivo general de las diversas asignaturas relacionadas con los funda-


mentos de los computadores, tanto dentro del entorno universitario como en
el ámbito de la enseñanza secundaria, es el de proporcionar una visión intro-
ductoria al diseño digital y a la arquitectura de los computadores.
En este sentido se dan a conocer las nociones fundamentales del funcio-
namiento de los computadores desde un punto de vista funcional, tecnológico
y estructural, que sirvan como base para continuar la formación en esta y en
otras áreas. Además se debe de comprender el funcionamiento de los dispo-
sitivos digitales básicos, abarcando tanto los circuitos integrados elementales
como los dispositivos programables.
La mayoría de libros utilizados en estas materias son fundamentalmente
teóricos y muy pocos incluyen aspectos prácticos. El presente libro pretende
ser un texto de carácter general de problemas y prácticas de fundamentos de
los computadores.
La gran mayoría de los libros de fundamentos de los computadores se
limitan a describir la teoría sin proponer ni resolver ejercicios teóricos y prác-
ticos de los casos estudiados. Por ello, este libro se ha pensado con el ánimo
de complementar los libros de teoría con ejercicios resueltos.
El nivel de dificultad de los ejercicios es diverso, desde simples ejercicios
que son consecuencia directa de algún concepto, hasta otros que necesitan
un mayor esfuerzo de comprensión y elaboración. Sin embargo, en todos los
casos se propone una solución completa. En este sentido, queremos expresar
nuestro más sincero agradecimiento a los alumnos de Informática Básica de
la Ingeniería Técnica en Informática de Gestión de la Universidad de Alicante
por la colaboración prestada en la elaboración de los distintos ejercicios que
en este libro se exponen.
El libro se estructura en dos partes organizadas en cuatro capítulos. La
primera parte engloba ejercicios resueltos de representación de la informa-
ción, circuitos combinacionales y secuenciales. La segunda está dedicada al
lenguaje ensamblador del computador didáctico elemental CODE-2. Este
ensamblador, junto con su entorno integrado, ha sido desarrollado por la
Universidad de Granada, y su utilización facilita la comprensión no sólo de

5
Prólogo

la arquitectura de una máquina sencilla, sino también de los primeros proble-


mas en lenguaje ensamblador. Además, se puede utilizar como material de
prácticas de laboratorio para la resolución de problemas relacionados con la
programación en lenguaje ensamblador.
Confiamos que este libro de ejercicios resueltos constituya un material
valioso y sirva de ayuda a todos aquellos lectores interesados por las diversas
asignaturas relacionadas con los fundamentos de los computadores, tanto en
los estudios universitarios como en la enseñanza secundaria.

Los autores

6
PARTE I

FUNDAMENTOS DE
DISEÑO DIGITAL
CAPÍTULO 1

REPRESENTACIÓN DE LA INFORMACIÓN
Ejercicio 1.1. Dados los números

A = B8CH
B = 34510
C = 1001011SM
D = 1658
E = 10110101 C2
Realizar las siguientes operaciones:
a) A*B (expresado en C2 usando 20 bits)
b) D*C (expresado en SM usando 12 bits)
c) A-B (expresado en C1 usando 12 bits)
d) B-D (expresado en base 8)
e) Calcular E+D y expresar el resultado en formato IEEE-754 simple precisión

Solución

En primer lugar, se pasan los cinco números a binario natural:

A= B8CH a base 2= 1011100011002


Por correspondencia una cifra en hexadecimal corresponde a 4 en
binario:
B 8 CH
1011 1000 11002

B= 34510 a base 2= 1010110012


Mediante divisiones sucesivas:
345/2 = 172 resto = 1
172/2 = 86 resto = 0
86/2 = 43 resto = 0
43/2 = 21 resto = 1
21/2 = 10 resto = 1
10/2 = 5 resto = 0
5/2 = 2 resto = 1
2/2 = 1 resto = 0

11
Representación de la información

C = 1001011SM a base 2 = -10112

Al ser SM el primer 1 indica que es negativo por lo que será:


1001011SM  -0010112

D = 1658 a base 2 = 11101012

Por correspondencia, una cifra en octal corresponde a tres en binario:

1 6 58
001 110 1012

E = 10110101 C2 a base 2 = -10010112

10110101 C2
-1
10110100 C1

Se cambian unos por ceros, y viceversa


10110100 C1  11001011
(el primer uno no se cambia porque indica que es negativo)  -
10010112

a) A*B (expresado en C2 usando 20 bits)


A = 1011100011002
B = 1010110012

10111000110
* 101011001
10111000110
10111000110
10111000110
10111000110
10111000110
1111100011111010110

11111000111110101102  al ser positivo ese mismo número está en


C2

12
Ejercicios de fundamentos de los computadores

= 01111100011111010110 C2

b) D*C (expresado en SM usando 12 bits)


C = -10112
D = 11101012

1110101
* -1011
1110101
1110101
1110101
- 10100000111

-0101000001112 para pasarlo a SM el signo negativo pasa


como uno:

= 110100000111SM

c) A-B (expresado en C1 usando 12 bits)


A = 1011100011002
B = 1010110012

101110001100
- 101011001
101000110011

1010001100112  al ser positivo ese mismo número está en


C1

= 101000110011 C1

d) B-D (expresado en base 8)


B = 1010110012
D = 11101012

101011001
- 1110101
011100100

13
Representación de la información

111001002 a base 8 en grupos de 3 corresponde a:

11 100 100
3 4 4
=3448

e) Calcular E+D y expresar el resultado en formato IEEE754 simple


precisión.
E = -10010112
D= 11101012

-1001011
1110101
0101010

1010102 se pasa a IEEE754SP

o Lo primero es desplazar el número hasta encontrar el primer 1:


1,01010*105
o Al ser positivo el campo de signo será 0
o El campo del exponente será = sesgo+5
 Sesgo= 28-1-1=12710=11111112
 Sesgo+5 (101)= 1111111
+ 101
10000100

o El campo de la mantisa será 01010 pero usando 23 bits.


S E M
0 1000100 01010000000000000000000

Ejercicio 1.2. Dados los números:


A = 4810
B = 10111011C1
C = 7FHEX
D = 326,187510
Realizar las siguientes operaciones:
a) A+B; operar en C1 y dar el resultado en decimal
b) D-C; dar el resultado en IEEE754

14
Ejercicios de fundamentos de los computadores

Solución

a) A+B
Pasamos todo a complemento a 1:

A = 48 lo pasamos a binario
Mediante divisiones sucesivas:
48/2 = 24 resto = 0
24/2 = 12 resto = 0
12/2 = 6 resto = 0
6/2 = 3 resto = 0
3/2 = 1 resto = 1

Bit de signo como es positivo es 0


A = 0110000C1

Como B ya nos lo dan en C1 no hace falta que hagamos nada con él.
B = 101111011C1

Ahora operamos en C1
Como A es positivo rellenamos con ceros a la izquierda, y como
B es negativo rellenamos con unos a la izquierda:

A 000000000110000c1
B 111111101111011c1
+
111111110101011c1

El resultado lo pasamos a decimal:

Cambiamos 0 por 1 y 1 por 0, excepto el bit de signo:


A+B=111111110101011c1=000000011010100sm

Pasamos el número en signo y magnitud a decimal:


El bit de signo es 1, por lo tanto el signo es negativo.
Y el número restante en binario puro pasado a decimal es:
1*26+1*24+1*22=64+16+4=84

Resultado: -84

15
Representación de la información

b) D-C
Lo pasamos todo a binario puro, para eso cada valor en hexadecimal
lo representamos en binario con 4 bits:

C= 7FHEX 7 F
111 1111
D=-326,187510

Operamos por separado la parte entera y la decimal:


Parte entera: 326

326/2 = 163 resto 0


163/2 = 81 resto 1
81/2 = 40 resto 1
40/2 = 20 resto 0
20/2 = 10 resto 0
10/2 = 5 resto 0
5/2 = 2 resto 1
2/2 = 1 resto 0

Parte decimal: 0,1875

0,1875 * 2 = 0,375
0,375 * 2 = 0,750
0,750 * 2 = 1,500
0,500 * 2 = 1,000

101000110,0011

Hacemos el resto en binario puro:

D= 101000110,0011
C= 0111111
011000111,0011

011000111,00112

Pasar a IEEE754 (simple precisión):


Bit de signo (positivo) = 0

16
Ejercicios de fundamentos de los computadores

Para calcular la mantisa movemos la coma hacia la izquierda hasta que se


quede sólo un uno delante de la coma, y contamos el número de bits que
hemos movido:
(1,)10001110011000000000000
Mantisa: 10001110011000000000000
Bits movidos: 7
Y para calcular el exponente pasamos el número de bits que hemos
movido la coma a sesgo:
7: 127+7=134=10000110
Exponente: 10000110

Resultado:
S E M
0 10000110 10001110011000000000000

Ejercicio 1.3. Sea el siguiente formato de representación en coma flotante de


24 bits:

→ Exponente: 11 cifras representadas en complemento a 1.


→ Mantisa: 12 cifras representadas en complemento a 2.
→ Signo: 1 cifra.

a) Indicar cuál es el rango de representación del formato.


b) Representar en el formato anterior los siguientes números
b.1. 75,112510
b.2. 32,180110
c) Con los números obtenidos realizar la operación a+b y expresarla en el
formato IEEE754 de simple precisión.

Solución

a) Tenemos

S Exponente Mantisa
1 11 cifras 12 cifras

El número se representa como N=mantisa x 2exponente


Si trasladamos a la barra de valores donde el 0 es representable y,
además:

17
Representación de la información

|--[------------------------------]----|----[----------------------------]--|
(1) (2) 0 (3) (4)

(1) El número máximo negativo = max_mantisa x 2max_exp


(2) El número mínimo negativo = min_mantisa x 2min_exp
(3) El número mínimo positivo = min_mantisa x 2min_exp
(4) El número máximo positivo = max_mantisa x 2max_exp

Ahora obtenemos el rango de la mantisa y el rango del exponente:

• Rmantisa = [-2n-1,2n-1-1] = [-210, 210-1]=[-1024, 1023]


• Rexponente= [-2n-1+1, 2n-1-1] = [-212+1, 212-1] = [-4095, 4095]

Por tanto, el rango de representación es:

R = [1024 x 24095 , 1 x 24095] U 0 U [1 x 24095 , 1023 x 24095]

b)
b.1. 75,112510

→ Primero pasamos el número a binario.

Parte entera: 75

75/2 = 37 resto 1
37/2 = 18 resto 1
18/2 = 9 resto 0
9/2 = 4 resto 1
4/2 = 2 resto 0
2/2 = 1 resto 0

7510= 0010010112

Parte decimal: 0,1125

0,1125 * 2 = 0,225
0,225 * 2 = 0,450
0,450 * 2 = 0,900
0,900 * 2 = 1,800

18
Ejercicios de fundamentos de los computadores

0,800 * 2 = 1,600
0,600 * 2 = 1,200
0,200 * 2 = 0,400
0,400 * 2 = 0,800
0,800 * 2 = 1,600
0,600 * 2 = 1,200
0,200 * 2 = 0,400
0,400 * 2 = 0,800

0,112510=0001110011002

75,112510 = 1001011,0001110011002

→ Seguidamente movemos la coma para completar la


mantisa.
1001011,000111001100  1001011000111,001100x2-6

00000000110 Complemento a 1  11111111001C1

Y el signo, al ser positivo, es 0.

b.2. 32,180110

 Primero pasamos el número a binario.

Parte entera: 32

32/2 = 16 resto 0
16/2 = 8 resto 0
8/2 = 4 resto 0
4/2 = 2 resto 0
2/2 = 1 resto 0
100000

Parte decimal: 0,180110

0,1801 * 2 = 0,3602
0,3602 * 2 = 0,7204
0,7204 * 2= 1,4408

19

Vous aimerez peut-être aussi