su computador como funciona y que tiene por dentro

Upload: elrosarioylossalmos7098

Post on 08-Jul-2015

13.092 views

Category:

Documents


0 download

DESCRIPTION

Su computador Como Funciona y Que Tiene Por Dentro

TRANSCRIPT

....... SU COMPUTADOR....................CMO FUNCIONA .................Y QU TIENE POR DENTRO JAIME ZULUAGA E

Pgina 1 de 74

....... SU COMPUTADOR....................CMO FUNCIONA

.................Y QU TIENE POR DENTRO

POR JAIME ZULUAGA E.Primera edicin tipogrfica 1994 Segunda edicin mejorada 2011 va internet

Pgina 2 de 74

INDICE Pg. 5 Antes de leer: A quin le puede interesar este folleto? 6 El computador: una ciudad en miniatura 7 El lenguaje humano y el lenguaje de las computadoras 8 Plan a seguir para comprender cmo funciona un computador 8 Repaso de sistemas de numeracin 8 El acarreo 11 Acarreo al contar y al sumar en el sistema Binario 12 Ejercicio de suma binaria 12 Resta binaria 13 Ejercicio de resta binaria. 13 Complemento a 1 de un bit 14 Convirtamos la resta en suma 15 Multiplicar = sumar 15 Por qu es ms fcil multiplicar en binario que en decimal? 16 Dividir = Restar 17 Cmo convertir un decimal a binario 18 La coma en el binario 19 El sistema binario, octal, hexadecimal 21 RDENES PARA EL COMPUTADOR El sistema hexadecimal: cdigos para dar rdenes al computador 22 Los registros 24 Operaciones principales y sus Mnemotcnicos 27 El programa anterior visto desde dentro 29 Cmo Trabaja la ALU Operaciones lgicas AND, OR, NOT 33 Lgica negativa 33 Frmulas 34 Ejercicios sobre frmulas OR AND 34 Tablas y operadores lgicos 35 Aplicaciones prcticas: 1) Comparacin de bytes 36 2) Un sumador de dos bits 37 3) Enmascaramiento 38 Repasemos 39 Ejercicios sobre tablas y operadores lgicos 42 Conocida la tabla, buscar la frmula 43 Solucin de algunos problemas sencillos 43 Primer problema: Cmo montar un XOR 44 Segundo problema: Un contador binario 47 Tercer problema: Selector para el cdigo BCD 48 Cuarto problema: Un interruptor selector, multiplxer 49 Quinto problema: Un decodificadorPgina 3 de 74

50 Un contador hasta tres 51 Problema sexto: Una ROM 51 Problema sptimo: Un basculador (flip flop) 52 Cmo escribir en un basculador. Seal de reloj 52 Basculadores en serie 53 Dado el diagrama del chip, hallar las frmulas y dibujar la tabla 54 LGICA TRANSISTORIZADA Electricidad 55 Todo elemento qumico busca tener ocho electrones en su ltima esfera 56 Cmo generar electricidad 57 Voltaje o Amperaje?, Cmo generar un bit 60 Disposicin covalente y dopado del silicio 60 Diodo bipolar de silicio 61 Puerta AND con diodos 62 Puerta OR con diodos 62 Transistor de silicio 63 Cmo conectar un transistor 64 Circuitos lgicos con transistores Puerta NOT 65 Puerta NOR con transistores 65 Puerta NAND con transistores 66 Un basculador 66 Fabricacin de transistores 67 Tipos de circuitos 69 Fotorreproduccin y chips 70 Decodificadores e interfaces 71 Hemos cumplido 72 Reloj digital 73 BIBLIOGRAFA Y AGRADECIMIENTOS

Pgina 4 de 74

Antes de leer: A quin le puede interesar este folleto? Cuando comenc a estudiar fsica, me entretuve mucho leyendo libros que explicaban diversas mquinas. Asuntos como por qu no se hunde un barco. Cmo se genera la corriente elctrica en un embobinado de alambre que gira cerca a un imn. Cmo los motores elctricos son obligados a su vez a girar cuando pasa corriente por un embobinado cerca a un imn. El micrfono que funciona al pasar pulsos elctricos por un embobinado convirtindole en un pequeo imn que hace vibrar una pequea placa. Recuerdo el disco giratorio con agujeros de Paul Nipkow que descompona una imagen para televisin. La forma cmo se sostiene el avin en el aire con sobrepresin debajo del ala y prdida de la misma por encima (efecto venturi) y la hlice que arrastra al avin por el mismo principio. Trat de hacer un radio a galena con una pirita, un condensador variable y un embobinado por el que me pareca ver danzando las ondas de Ala de avin una emisora de un lado para otro segn variaba el condensador. Si hasta ahora no me ha entendido, le dir que goc mucho al comprender cmo un carro se mueve, sus pistones, el giro preciso del distribuidor para producir la chispa, y el rbol de levas que levanta en el momento oportuno la vlvula para alimentar o expulsar los gases , los engranajes que convierten el movimiento vertical en giratorio. Y antes de eso el mecanismo simple de una locomotora a vapor. Hasta recuerdo el esquema que explicaba una central de veinte telfonos. Al ver en esos libros explicado el funcionamiento de esos aparatos, senta gozo, y crea haber despejado su misterio. Si a usted le gusta la literatura de divulgacin cientfica popular, voy a tratar de explicarle cmo trabaja un computador y cmo ejecuta tal diversidad de operaciones. Personalmente descans acabado este estudio que le participo, pues pude ver un computador por dentro, igual que usted ve cmo funciona su carro. Alguien comentaba que el computador es una mquina ignorante capaz de hacer trillones de malabares con sus tres manos. Se refera al acumulador, al registro X y al registro Y, alma Radio a galena del computador, que en un segundo hacen millones de transferencias. Estas se pueden Motor y dnamo utilizar siguiendo un proceso de comparaciones con tablas, para elegir la mejor opcin. Este mtodo inductivo que parte de mltiples observaciones para resolver problemas, nunca podr superar al mtodo deductivo del hombre, cuyo genio puede intur la verdad de un golpe. L os constructores de la Blue han pretendido crear una mquina a la que ningn ajedrecista pueda ganarle. Por lo que acabo de decir, esto es imposible. Kasparov ciertamente fue derrotado, pero se desat una discusin. Unos decan que hubo fraude, otros que Kasparov se equivoc al tratar de engaar la mquina con jugadas ilgicas para las que no estaba programada. Vea linkPgina 5 de 74

http://www.ajedrezdeataque.com/04%20Articulos/00%20Otros%20articulos/Computadoras/Kasp arov.htm

De todas maneras, el computador, una gran herramienta para resolver problemas complicados, nunca superar el genio del hombre, que fuera del mtodo inductivo: partir de experiencias conocidas, (al computador se las entregan en tablas) tiene la capacidad deductiva capaz de ver La Verdad en s, o sea intur la esencia, donde se encuentran todas las posibilidades del SER, no slo las ya registradas en una experiencia previa. Esta capacidad intuitiva es la que el hombre del comn emplea para resolver sus problemas. La sabidura no est en saber muchas cosas, sino en aplicar lo que se sabe en el momento oportuno. Este tipo de sabidura, fue alabada por el Evangelio: les diste a conocer a los ignorantes, lo que los sabios no entienden Mt 11,25. El computador: una ciudad en miniatura El computador se puede equiparar a una ciudad, su cableado profuso de electricidad y el trfico de sus calles. Por todo lado se ven cables por donde la electricidad va a todos los puntos de la ciudad. Los electrones, en toda parte que haya un interruptor encendido, entrarn. Si se encuentran una resistencia, se producir el calor de la estufa. Si esa resistencia est en vaco, generar la luz de una bombilla. Si lo que encuentra es un embobinado, all pueden ocurrir varias cosas: puede ser el embobinado de un audfono, entonces traduce los pulsos en sonidos, o puede ser el embobinado de un micrfono, entonces genera sonidos, puede ser el de un motor, entonces mueve una mquina de afeitar o una lavadora, o una licuadora o un pistn que hace vaco en la nevera para que los gases al expandirse en la tubera absorban el calor. Si miras tu computador por dentro, vers que la corriente no va por dos cables como ocurre con el alumbrado de la ciudad. Son autopistas de 8, 16, 32, 64 carriles, enterradas en capas. Se tienden cables finsimos que llevan la corriente y se cubren con una capa. Se perfora en ciertos puntos donde con las paticas de los chips se recoge la electricidad. Se hacen varias capas con sus correspondientes autopistas y sus perforaciones que salen a la ltima capa por donde entran las paticas de los chips. Los chips son bodegas en forma de cucaracha, ver figura, con celdas que detienen la cochips rriente una billonsima de segundo o la retienen si es el caso, mientras esperan que se abran las compuertas AND, OR XOR para direccionar el flujo elctrico hacia otros lados. La corriente es entregada no de forma continua sino por los pulsos dados por un reloj o cristal. Esos pulsos, al estilo del corazn humano, entregan la electricidad a cuotas cuya velocidad se mide en millones de pulsos por segundo llamados hertzios. Cuando enciendes el computador, la corriente pulsante se irriga por todas las pistas como carros veloces que van por las avenidas, son detenidos por semforos y luego parten veloces por todas partes de la ciudad. Los terminales de estas avenidas son diferentes chips con sus funciones especficas: la impresora, el mouse, la pantalla, la unidad de CD, el teclado tienen forma dePgina 6 de 74

recibir y almacenar la corriente que a veces se detiene una billonsima de segundo. All todo sucede en micro milsimas de segundo. Al llegar al correspondiente chip al que estn conectadas, encuentran un intrprete, o sea un semforo que segn la corriente que traigan (positivo, negativo), abrir o cerrar determinadas compuertas. El trnsito de la corriente, puede ser detenido o se le abrir una o ms compuertas para que siga su afanadsima carrera por otros cables. Mientras en tu casa, eres t quien enciendes o apagas el interruptor que va a hacer determinada tarea, en el computador se encargan de esto los chips que tienen unas pocas puertas: AND, OR, XOR que combinadas entre s generan lo que se llama La Palabra de 8 slabas (byte) que interpretada en un diccionario (ROM), dir en millonsimas de segundo qu puertas se deben abrir en ese momento para que la corriente siga por el complejo laberinto de carriles indicados y cumplan la misin asignada. Comencemos pues explicando qu es una palabra en computacin. El lenguaje humano y el lenguaje de las computadoras El hombre para propagar sus conocimientos ha sintetizado en forma extraordinaria los smbolos con que los divulga. Con 28 letras del abecedario y unos pocos signos de puntuacin, se pueden escribir todos los libros del mundo. Las matemticas con los diez dgitos y algunos signos como el + (ms) y el (menos), la divisin / escribe operaciones que se entienden aqu y en todo mundo. La msica de todo tipo se puede escribir en un pentagrama con unos pocos smbolos tan precisos que se inventan programas para que la ejecuten. Morse logr con puntos, rayas e intervalos, enviar mensajes a grandes distancias. El lenguaje de las computadoras es mucho ms sencillo y simple que los anteriores. Tiene slo dos signos: el uno (1) y el cero (0) y le gana al de Morse, no slo porque se suprime la pausa como distintivo, sino porque con ellos se ha inventado un idioma (lenguaje) de poqusimas palabras con que resuelven todo tipo de problemas: se escribe, se habla, se interpreta msica, se dibuja, se hacen clculos complicados, se guarda y se busca informacin, se estructuran planos y se hacen vallas y avisos publicitarios.

Alfabeto Binario: 0110 0001 = 97 a 0110 0010 = 98 b 0110 0101 = 101 e 0110 0110 = 102 f 0110 1001 = 105 i 0110 1010 = 106 j 0110 1101 = 109 m 0110 1110 = 110 n 0111 0001 = 113 q 0111 0010 = 114 r

0110 0011 = 99 0110 0111 = 103 0110 1011 = 107 0110 1111 = 111 0111 0011 = 115

c g k o s

0110 0100 = 100 0110 1000 = 104 0110 1100 = 108 0111 0000 = 112 0111 0100 = 116

d h l p t

Pgina 7 de 74

0111 0101 = 117 u 0111 0110 = 118 v 0111 0111 = 119 w 0111 1000 = 120 x 0111 1001 = 121 y 0111 1010 = 122 z La ventaja del sistema binario sobre el Morse es que si vamos a escribir amor sin espacio entre los smbolos, en Morse sera imposible descifrarlo pues son indispensables las pausas para distinguir la M de la O. En cambio en binario: 01100001011011010110111101110010 como todas las letras tienen ocho dgitos, basta cortar la tira cada ocho letras y se sabe de qu letras est compuesto el mensaje. De hecho en el computador, todos los mensajes van en una sola tira y un contador, cada ocho dgitos la corta y la lee. Todos estos lenguajes, a pesar de su sencillez, requieren un entrenamiento para dominarlos. Vamos por lo tanto a hacer un plan para que repase algunas nociones necesarias y as pueda entender y vivir cmo funciona un computador. Plan a seguir para comprender cmo funciona un computador Vamos 1) a familiarizarnos con el sistema binario de numeracin recordando algunas nociones y haciendo algunos ejercicios. 2) vamos a resolver algunos problemas sencillos con operadores lgicos, para entrar de lleno en la forma como el ordenador resuelve los problemas. 3) veremos algunas nociones elementales sobre circuitos electrnicos que lleven a cabo las operaciones AND, OR y NOT. Explicaremos dos programas en lenguaje Basic y un programa sencillo en lenguaje Assembly, para que tenga una idea cmo se le dan rdenes a un computador. Siga con paciencia todos los ejercicios. Son fciles y amenos. Hgase de cuenta que est andando con un nio pues el comportamiento de un computador es muy elemental, y cualquier problema que resuelve sigue pasos sencillos aunque rapidsimos. Repaso de sistemas de numeracin Las manos fueron el primer baco que emple el hombre para contar, y un soldado romano, como un gran maestro, nos hubiera mostrado una mano y dos dedos (VII) para representar el siete, y dos manos y dos dedos (XII) para representar el doce. Los romanos eran expertos para contar con los dedos y sus nmeros son de una lgica maravillosa: IXX (diez y nueve) son cuatro manos menos un dedo y XXXIII (treinta y tres) son seis manos, o sea tres parejas de dos manos invertidas y tres dedos. En un IX se ve perfecto la lgica del diez menos uno, contrapuesto al XI = diez + 1. A la izquierda el I resta y a la derecha suma. Este modo tan lgico y sencillo es muy til en cantidades que lleguen hasta XXXIX. De ah para delante la lgica del cinco desaparece. Nmeros como MMCC, CL, DM no tienen que ver nada con el V. El acarreoPgina 8 de 74

En los sistemas modernos de numeracin existe el acarreo que los romanos no conocan. Para explicar en qu consiste el acarreo, partimos de estas nociones conocidas por usted. Recordemos que: 10 x 10 x 10 = 103 Y recordemos que:

Las operaciones anteriores se pueden hacer con cualquier nmero base y se deduce que: 1. Todo nmero elevado a la cero potencia, da uno. Ejemplos: 100 = 1, como qued demostrado

2. Todo nmero elevado a potencia uno es igual a s mismo. Ejemplo: 21 = 2, lo que qued demostrado arriba.

Todo nmero elevado a una potencia negativa, equivale a 1 dividido por el mismo nmero elevado a la potencia positiva, as: 2-2 = 1 / 22, como qued demostrado arriba. 3-7 = 1 / 37, y lo demostramos as: 32 /39 = 3x3 / 3x3x3x3x3x3x3x3x3 = 32-9 = 1/37 3. Todo nmero decimal se puede escribir en potencias de diez as: Sea 543710 un nmero decimal (lo que indicamos con el subndice 10). Lo podemos escribir: 5437,03 = 5x103 + 4x102 + 3x101 + 7x100 + 0x10-1 + 3x10-2 Comprobemos: 5x103 = 5000 4x102 = 400 3x101 = 30 7x100 = 7Pgina 9 de 74

0x10-1 = 0 -2 3x10 = 0.03 Total 5437.03 Para explicar la suma de dos nmeros decimales 5437 + 3963 visualicemos las casillas del sistema decimal como potencias de 10 as:4

10

centenas decenas unidades dcimas centsimas 10 102 101 100 10-1 10-23

5 4 3 7 3 9 6 3 -----------------------------------------------------------------La suma de 5437 + 3963 es supremamente sencilla: cada vez que en una casilla ajustemos diez, anulamos con cero (escribo cero) y llevamos uno (acarreo) a la siguiente casilla. Fjese bien 7+3 es igual a diez, entonces coloco cero (0), - como quien dice no tengo unidades en esta casilla - y lleva uno a la siguiente casilla- ese 1 en realidad son 10 unidades y queda encasillado en la siguiente columna como una decena -. Eso lo expresamos as: 10 donde el cero indica que no hay unidades, y el 1 ya no significa 1, sino 1 decena. Esto se conoce como acarreo. Sumamos el 1 que acarreamos con las 3 decenas y las 6 decenas que haba en esa columna: 1+3+6= y nos da 10 decenas. Por lo tanto colocamos 0 y estas diez decenas las convertimos en una centena, o sea acarreamos uno a la siguiente casilla. El 1 que acarreamos, subi con diez paquetes de diez, o sea una centena. En las otras dos columnas no hay acarreo pues no alcanzan a sumar 10.

El acarreo es la operacin de poner cero y llevar uno a la siguiente casilla cuando en el sistema que se est contando no alcanza a escribirse el nmero de que se trata. No hay que inventar nuevos signos como hicieron los romanos. En el sistema decimal el acarreo ocurre cada vez que en cualquier columna se llega al tope de diez como lo hicimos en las tres ltimas casillas. En las sumadoras antiguas haba un enganche cada 10 dientes en todos los rodillos. Al dar manivela arrastraba el siguiente cilindro un diente.Pgina 10 de 74

Acarreo al contar y al sumar en el sistema Binario Cuando contamos estamos sumando uno as 1+1=2; 2+1=3; 3+1=4 y en el sistema decimal hay acarreo cada 9 sumandos 9 + 1 =10 29+1=30 39+1=40. En el sistema binario es ms fcil contar pues siempre que hay dos unos, se coloca cero y se sube un escaln lo que llamamos acarreo: comencemos a contar en binario (los 6 primeros nmeros binarios van en verde y la cantidad que representan en el parntesis): 0 (cero); 0+1=1 (uno); 1+1 hay acarreo porque hay dos unos =10 (dos); 10+1=11 (tres ); 11+1=100 hay acarreo doble. En la unidades hay acarreo, se coloca 0 y sube un 1 que al encontrar otro 1 se convierte en 0 y sube una escala ms (cuatro); 100+1=101 (cinco); 101+1=110 (seis) hay acarreo en las unidades. Vamos a emplear la columna de potencias del 2 para que se d cuenta del acarreo y cmo sube el valor de la unidad binaria. Recuerde que en el sistema decimal el valor sube 10, 100, 1000, 10.000 al acarrear, o sea que el acarreo lleva 10 paquetes de la escala anterior. En el binario sube 2, 4, 8,16, 32, o sea que duplica la escala anterior. (En rojo van los primeros 8 binarios)

Ahora, escribe como ejercicio los nmeros 9, 10, 11, 12 en binario. Para resolver el ejercicio puede emplear dos mtodos: puede mirar el equivalente en cada casilla, o mejor, a partir del ocho binario = 1000 ir sumando unidades. Es el mtodo que debes emplear para acostumbrarte a trabajar como lo hace el computador. Respuestas: 1001,1010, 1011, 1100

Vamos a sumar los nmeros binarios 10012 y 11012. Para ello visualizamos las potencias del dos y el valor de cada casilla en decimal. Los colocamos debajo del encasillado para sumarlos:

Pgina 11 de 74

Como puede darse cuenta, slo hay acarreo en la primera y en la ltima columna. En ellas se coloca cero y se lleva un uno a la siguiente columna. Para conocer el valor de los nmeros binarios, basta que mire el valor de la potencia del 2 en la columna donde haya un 1 as: El nmero binario 10012 equivale al 9 decimal porque tiene una unidad en la columna de unidades, cero en los grupos de 2 y de 4 unidades, y un paquete en el de 8. En total 8+1 = 9 El binario 11012 corresponde al 13 decimal porque sus columnas suman: 8 + 4 + 0 + 1 = 13. El resultado 10110 tendr que dar 13+9 = 22 en decimal. Probemos sumando el valor de cada columna: 101102 = 16 + 0 + 4 + 2 + 0 = 22 Ejercicio de suma binaria Haga las siguientes sumas de nmeros binarios, y convierta despus todos los sumandos y los resultados a decimal. Constate as que las sumas quedaron bien hechas: 1011 +1 1011 +1001 1111 +1 1011 + 1011 1111 + 111

Respuestas: 11002=11+1=12; 101002=11+9 = 20; 100002=15+1=16; 101102=11+11=22; 101102=15+7=22

Resta binaria Si vamos a hacer la siguiente resta decimal: 83 -79 decimos que el tres presta 1 al 8 para quedar convertido en 13. Realmente lo que presta el tres no es 1 sino un paquete de diez (una decena), por eso queda convertido en 13 y no en 4. Cuando se presta a columna superior, siempre se prestan, en el sistema decimal, diez y no uno como solemos decir por comodidad. Examinando las columnas del sistema decimal vamos a explicar lo que pasa en la siguiente resta: 902 - 327

Pgina 12 de 74

104 103 102 9 --- 3 5

101 0 2 7

100 2 7 5 90

Hemos descompuesto el 902 = 900+0+2 en 800+90+12 = 902 Estas ideas tan elementales, deben quedar claras para que comprenda cmo se resta en binario. Vamos a restar los siguientes binarios: 10102 -- 1012 Para entender esta resta escribimos las columnas del sistema binario 23 22 21 208 bajo los 1 de escaln: 4 2 1 y los descompongo as:

23 228 4

21 202 1

1

0 1 02 -- 1 0 12

0 1+1 -- 1 0 1

0 1+1 0 0 12 1

0 1 0 1

Observe que el 8 baj prestando dos grupos de 4, y no le qued nada. Y el 2 baj prestando dos 1 y se qued sin nada. Veamos si comprende los resultados de las siguientes restas. Acurdese que al sacar prestado, presta dos y nunca le queda nada al que prest: 1010 -11 111 1001 -11 110 1000 -11 101 1101 -110 111 1111 -1010 101

Ejercicios de resta binaria Trate de hacer las siguientes restas. Convierta los nmeros a decimal y compruebe: 1001 1010 1000 1001 1001 1110 1010 -1 -1 -11 -11 -1 -10 -11el 2 presta 100 unidades (10 decenas) al 9, toma una decena y queda cona vertido en 12 y deja 9 decenas en la 2 columna. El 902 queda as:

104 103 102 101 100 8 9 12 --- 3 2 7 5 7 5(1112 = 8 1 = 7); (1112 = 9 2 = 7);

Respuestas: (10002 = 9 - 1= 8); (10012 = 10 1 = 9); (1102 = 9 3 = 6); (10112 = 14 3 = 11); (1112 = 10 3 = 7)

Pgina 13 de 74

Complemento a 1 de un bit A los nmeros del 0 al 9 se les llama dgitos (dedos). Al 0 y 1 (negativo, positivo) del sistema binario se les llama bits (pedacitos). El complemento a 1 de un bit es lo que le falta para llegar a 1. Por lo tanto para hallar el complemento de un bit hay que restarlo de 1 as: el complemento de1 es: 1-1=0 y el complemento de cero es 1-0=1. Para obtener el complemento de un nmero binario basta restar todos sus bits de uno. El complemento de 10000001 ser: 11111111 -10000001 01111110 Para obtener el complemento a uno de cualquier binario, basta cambiar sus ceros por unos y sus unos por ceros. El complemento de 101 ser 010. Convirtamos la resta en suma La metodologa ms correcta para restar, es la de sumar complementos. Por ejemplo: si vamos a restar 14 menos 6, no debemos decir catorce menos seis (14-6), sino salir de 6 hacia adelante buscando el complemento y se dice: a seis le faltan 4 para llegar a 10 y otros 4 para llegar a 14, en total le faltan 4+4=8. Si vamos a restar 29 menos 13, partimos del 13 buscando el complemento y decimos: a 13 le faltan 7 para llegar a 20 y otros 9 para llegar a 29. En total le faltan 7+9=16. La resta de 902-327 que hicimos en la pg 12 es ms fcil hacerla as: 327 a 330 hay 3; a 400 hay 70, y a 900 hay 500. Total 573 y 2 ms para llegar a 902 = 575 Hemos convertido as la resta en una suma. Cuando restamos medimos la distancia que hay entre dos nmeros. Si miramos partiendo del nmero menor hacia delante, es ms fcil apreciarla Con los nmeros binarios se puede hacer el mismo truco: Para restar se colocan tantos unos como cifras tiene el nmero mayor y se saca el complemento del sustraendo (nmero menor) y se le suma al minuendo (nmero mayor). Al resultado se le suma 1 lo que hacemos con un acarreo circular con el resultado. Para hacer las restas anteriores: (1001-1); (1010-1); (1000-1);(1001-10); (1001-11); (111011); (1010-11), procedamos de este modo: 1) Saquemos los complementos de 1,10 y 11 que son los nmeros que se van a restar. Para ello coloquemos cuatro unos que es el nmero de cifras que tiene el minuendo al cual debe alcanzar as: 1111 1111 1111 0001 Complemento 1110 0010 1101 0011 1100

2) Ahora sumamos el complemento al numero de que se va a restar (minuendo) y 3) trasladamos el uno que se recarga a la izquierda a la derecha para sumarlo (acarreo circular). Esta operacin se puede hacer con una orden ROL (Rotate Left), muy usada en Assembly:

Pgina 14 de 74

1001 +1110 101113) acarreo

1010 +1110 11000 +1 1001

1000 +1110 10110 +1 111

1001 +1101 10110 +1 111

1001 +1100 10101 +1 110

1110 +1100 11010 +1 1011

1010 +1100 10110 +1 111

+1 1000

Hemos convertido la resta en suma de complemento y acarreo circular. El acarreo circular que veremos se le conoce como complemento a dos. Multiplicar = sumar La multiplicacin equivale a sumar el multiplicando tntas veces como indica el multiplicador. Por Ejemplo: 3 x 5 = 5 + 5 + 5 = 15 Para multiplicar bastara decirle al computador que sumara tantas veces el multiplicando como lo indique el multiplicador. Como el computador puede comparar es fcil programarlo para que haga una multiplicacin como si fuera una suma. Si usted sabe algo de Basic entender este programa para multiplicar 3 x 5: 1. 2. 3. 4. 5. 6. 7. 8. let A = 5 let C = 3meto en esta casilla el multiplicando meto en esta casilla el multiplicador 3 que va a disminuir en 1 ms abajo

B = C casilla con valor F=A

casilla con valor 5 que va a aumentar en 5 en seguida

F = F + A cada vez que se pase por aqu la F aumenta 5 B = B 1 cada vez que se pase por aqu la B disminuye 1 if B > 1 then go to 5 si lo que hay en B es > 1 debe ir al 5 print A x C = F se imprime el resultado as: 5 x 3 = 15

Explicacin: 1. En la lnea se le dice al computador que en la Casilla A meta un 5. (el multiplicando) 2. Se ordena que en la Casilla C meta un 3. (el multiplicador) 3. En la Casilla B se mete una copia de lo que hay en C. O sea un 3. Este valor va a disminur en 1 cada vez que se pase por el numeral 6. 4. En la Casilla F se mete una copia de lo que hay en A. O sea un 5. Este valor va a aumentar en A , o sea en 5, cada vez que se pase por el numeral 5 5. La Casilla F aumenta el valor en A o sea en 5, ahora F = 10. 6. A lo que hay en la Casilla B, se le saca 1. Ahora el B = 2. 7. Aqu se genera un bucle repetitivo. Si lo que hay en la Casilla B mayor que 1, entonces se le ordena que vuelva a repetir las rdenes dadas desde la lnea 5. El computador repite las rdenes dadas en los numerales 5 y 6, sumando 5 a lo que hay en F y queda 15 y quiPgina 15 de 74

tando 1 a lo que hay en B que queda en 1, entonces el condicional if ya deja pasar porque lo que hay en la Casilla B no es mayorque 1. Mejor dar la orden: if B > C then go to 5 para que funcione convalores de C B or F = B then go to 5 bucle repetitivo: volver al 5 si Print A / B = Rse imprime 32 / 8 = 4

Print y sobra como residuo: F

Explicacin: 1. En la Casilla identificada como A ponemos el valor del dividendo o sea 34. 2. En la Casilla identificada como B se coloca el valor del divisor o sea 6. 3. En la Casilla identificada como R metemos un cero. Vamos a emplear la casilla como un contador. 4. Se coloca una copia de lo que hay en la Casilla A en una Casilla identificada como F, o sea un 34. Esta casilla cada que se pase por el paso 5 se le resta el divisor 6 5. A lo que hay en la Casilla F se le quita lo que hay en la Casilla B. En el primer bucle en F quedara consignado un 28, o sea 34 6 = 28 6. Al contador R se le suma 1. O sea R = 1 al pasar por primera vez el bucle. 7. Aqu se genera un bucle repetitivo: Si lo que hay en F es mayor o igual a lo que hay en la Casilla B, o sea 6, se obliga al computador a volver a la lnea 5 y repetir las rdenes dadas desde ese numeral. Por lo tanto a F = 28 se le vuelve a quitar 6 y queda F = 286=22 y el contador R se le suma 1 o sea R = 2. El bucle se repetir tres veces ms, y entonces F rebaja sus valores a 16, 10, y 4 y el contador cuenta en total 5 restas. Al ser F menor que el divisor B , se le da permiso que pase al numeral 8. 8. Se imprimen los valores de A B y el contador R as: 34/6 = 5. 9. Se imprime lo que qued en F que es el residuo de todas las restas, en este caso 4.Pgina 17 de 74

A las personas que se les ha olvidado cmo se hace una divisin, pueden seguir este proceso de restas sucesivas para dividir. Cmo convertir un decimal a binario Tenga en cuenta la tabla binaria 27=128 26=64 25=32 24=16 23=8 22=4 21=2 20=1

Si usted quiere saber cmo se convierten a binario, los 8410 y 8510, opere de este modo: A 84 se le pueden quitar 64 que corresponden a la casilla 26.. Colocamos 1 debajo de la casilla 26 y ya del 84 nos quedan 84 - 64 = 20. En la columna 25 que vale 32 colocamos un cero 0 pues de 20 que sobraron, no se puede sacar un paquete de 32. En la casilla 24 colocamos un 1 equivalente a 16 que sacamos de los 20 que nos sobraron, o sea nos quedan 20 16 = 4. Con estos 4 metemos un 1 en la casilla 22 ; As el 84 en binario queda 10101002. Comprobemos: 64+0+16+0+4+0+0=84 Convirtamos ahora el 8510 (el subndice 10 = nmero decimal) a binario: 85 - 64. Sacamos un 1 paquete de 64 y sobran 21 en la columna de 32 no queda nada pues el sobrante 21 no da para un 32 21 - 16. Sacamos un 1 paquete de 16 y quedan 5 en la columna de 8 no queda nada pues el sobrante 5 no da para un paquete de 8. 5 - 4. Queda un paquete en la columna de 4 y sobra 1 en la columna de dos no queda nada pues el sobrante 1 no da para sacar 2 1 es la unidad que sobr y queda de ltima. Luego 8510 en binario es 10101012, Comprobemos sumando columnas: 64+0+16+0+4+0+1=85. Trate de convertir a binario estos nmeros: 2; 3; 8; 9; 17; 32; 24; 64; 34; 65; 16; 20; 10; 12; 14; 15Respuestas: 102; 112; 10002; 10012; 10102; 11002; 11102; 11112 100012; 1000002; 110002; 10000002; 1000102: 10000012; 100002; 101002:

La coma en el binario Sea el binario 1001.011 que debemos leer. Para ello recordemos las columnas del encasillado binario: 23=8 22=4 21=2 20=1 2-1=1/2 2-2=1/4 2-3=1/8 Si vamos a convertir este binario a decimal bastara sumar columnas as: 8 + 0 + 0 + 1 + 0 + 1/4 + 1/8 = 8 + 1 + + 1/8 = 9 3/8 = 75/8 = 9,38 Si en el sistema decimal corremos la coma, el nmero queda multiplicado o dividido por 10. Si corremos la coma en un binario queda multiplicado o dividido por 2. Hagamos el ensayo con el anterior nmero 1001,011: 10010.11 = 16 + 2 + 1/2 + 1/4 = 18 3/4 = 18.75 = 9.38x2 100.1011 = 4 + 1/2 + 1/8 + 1/16 = 4 11/16 = 4.69 =9.38/2

Pgina 18 de 74

No es muy necesario que usted domine las operaciones binarias, pero es bueno que se familiarice con los nmeros binarios hasta llegar a comprender que el sistema binario es ms sencillo y perfecto que el sistema decimal, pero que conlleva tantos acarreos que slo la velocidad de la luz lo hace prctico. Si usted ha captado la simpleza de este tipo de operaciones aunque por falta de costumbre se le dificulte un poco al inicio, ha logrado el objetivo de este pequeo ensayo de matemtica binaria. Es muy importante que entienda bien lo que viene en seguida.

El sistema binario, octal, hexadecimal Con un sistema de dos seales (binario) que permita la presencia de una sola seal, se pueden dar dos (21=2) seales nada ms. Sean esas dos seales el cero y el uno. Hay un cero o hay un uno: 0 1 Con un sistema de dos seales (binario) que tenga posibilidad de la presencia de las dos seales a la vez, se pueden hacer 22=4 combinaciones. Basta tomar cada uno de los dos signos anteriores y combinarlos consigo y con el otro as: El cero consigo El cero con el uno El uno con el cero Y el uno consigo 00 01 10 11

1

0

0

12

Con dos bits se pueden hacer cuatro (2 =4) seales a las cuales se les puede dar cualquier significado arbitrario. Por ejemplo: 00 no hay enemigos 01 hay enemigos a la derecha 10 hay enemigos a la izquierda 11 hay enemigos al frente

Pgina 19 de 74

Un sistema de dos seales donde se permita poner cuatro seales (nyble), dara la posibilidad de 24=16 combinaciones distintas. Para lograrlas basta tomar las cuatro anteriores y cada una combinarla consigo misma, con las otras as: el grupo 00 combinado consigo y con todos los dems da: 00 00 00 00 00 01 10 11 digamos que es digamos que es digamos que es digamos que es 0 1 2 3

el grupo 01 combinado con todos incluyndose a s mismo da: 01 01 01 01 00 01 10 11 digamos que es digamos que es digamos que es digamos que es 4 5 6 7

Los dos grupos que faltan 10 y 11 dan las siguientes combinaciones: 10 10 10 10 00 01 10 11 digamos que es 8 digamos que es 9 digamos que es A digamos que es B 11 00 11 01 11 10 11 11 digamos que es C digamos que es D digamos que es E digamos que es F

Si se permitiera en total 8 seales, las combinaciones posibles seran 2 8=256. Habra que combinar cada una de las 16 anteriores consigo mismo y con las dems comenzando con el 0000 y terminando con el 1111 as: 0) 0000 0000 48) 0011 0000 0110 0000 . 1) 0000 0001 49) 0011 0001 . 2) 0000 0010 50) 0011 0010 El disco, los CD, las USB son bodegas con millones de puntos donde se almacenan 16) 0001 0000 64) 0100 0000 voltajes positivos (1) y negativos (0). La RAM es un chip donde se trae una copia 17) 0001 0001 65) 0100 0001 de esos puntos para interpretarlos y trabajarlos. Esto se hace comparndolos con 18) 0001 0010 66) 0100 0010 Las ROM que son chips con una tabla fija de las palabras, sonidos, colores y oficios bsicos del computador como son buscar, guardar, borrar, trasladar. Por ... ejemplo : Si llega el byte 01001010 a la ROM del teclado, el computador la inter32) 0010 0000 80) 0101 0000 preta como S. El computador maneja un bosque de 0 y 1 011011011 y con su monotona crea un mundo virtual maravilloso de colores, sonidos, trazos, clculos y 33) 0010 0001 81) 0101 0001 leyendas 34) 0010 0010 82) 0101 0010 . ... . 256) 1111 1111

Pgina 20 de 74

Ahora s, imaginmonos al computador recibiendo rdenes de ceros y unos seguidos. S se sincroniza para que reciba un solo bit, ese bit podra decir s o no. La lectura de un slo bit (positivo o negativo) tiene algunas aplicaciones en programacin. Por ejemplo para colocarle el signo positivo o negativo a un nmero. Tambin se emplea para las llamadas banderas. Pero si programamos al computador para que lea 3 seales, tenemos la posibilidad de decirle 23=8 cosas diferentes y emplearlas arbitrariamente para muchas cosas como son hacer msica o contar en sistema octal. Para obtener las posibilidades comenzamos desde cero (000) y fuimos sumando uno. As obtuvimos las ocho posibilidades. Si yo fuera a escribir el nmero octal 725438, con esas tres combinaciones, o a escribir la escala musical, sera muy sencillo: 7 2 5 4 3 111 010 101 100 011 si re sol fa mi En La ROM se le dice al computador que se trata de un nmero octal. As puede escribir cualquier nmero octal por largo que sea. Ahora bien, en vez de nmeros podemos programar una ROM para decirle que nuestros 8 signos son las siete notas musicales, y el cero es un silencio. Podemos enviarlas al computador combinndolas como queramos. Usted puede hacer toda una meloda. Es en la Tabla de la ROM donde el computador sabe cmo interpretar el byte que ha llegado. Un sistema muy empleado es el cortar la tira de ceros y unos cada 4 toques as: 1010/ 1101/ 0011/ Tenemos as una numeracin hexadecimal que en total nos da 24=16 combinaciones posibles. La numeracin hexadecimal es la empleada como cdigo de rdenes en lenguaje mquina. Como se trata de una numeracin con diecisis signos includo el cero, se han empleado para representarla, los nueve dgitos y las seis primeras letras, as: 0 = 0000 5 = 0101 A = 1010 E = 1110 1 = 0001 6 = 0110 B = 1011 F = 1111 2 = 0010 7 = 0111 C = 1100 3 = 0011 8 = 1000 D = 1101 4 = 0100 9 = 1001

RDENES PARA EL COMPUTADOR El sistema hexadecimal: cdigos para dar rdenes al computador Para dar rdenes a un computador, se emplean diferentes lenguajes (basic, cobol, fortran, pascal, logo). Estos lenguajes son compilaciones de una serie de rutinas escritas en assembly, un lenguaje elemental, muy cercano a lo que realmente recibe el computador. Por eso para entender el funcionamiento del computador se debe esPgina 21 de 74

tudiar assembly. Este lenguaje utiliza una serie de cdigos mnemotcnicos que facilitan el manejo de los nmeros binarios con que se alimenta al computador y que constituyen el lenguaje mquina. El lenguaje mquina se escribe en numeracin hexadecimal que se mete al computador a travs del teclado, despus de prepararlo con una pequea orden. Si usted est por ejemplo programando en basic, y quiere meter lenguaje mquina al computador, da la orden poke que le permite meter nmeros hexadecimales en la RAM. Cuando se est escribiendo un programa en el lenguaje mquina, el programador teclea las rdenes en forma de nmeros hexadecimales como con A9. El computador traduce esos nmeros en pulsos binarios as: A 9 1010 1001 El programador da rdenes en sistema hexadecimal para lo cual utiliza un programa ensamblador, y el computador las convierte a binario y las lee por nybles, o sea en bloques de 4. Una orden como la anterior: A9 (cargar el acumulador), solo ocupa un byte, o sea que se puede meter en una Casilla de 8 bits. Hay rdenes que pueden ocupar 2 o tres bytes y el computador tiene que leer dos o tres Casillas que son como tres renglones donde se le dice qu debe hacer. Un computador se maneja con un promedio de 140 rdenes similares a la anterior. Por ejemplo sta: 8D0439: 8 D 0 4 3 9 1000 1101 0000 0100 0011 1001 Como puede ver esta orden ocupa 3 bytes, y con ella se le dice al computador que coloque en la Casilla identificada como 0439 lo que en ese momento tiene en el acumulador. El acumulador es el registro principal del computador, y junto con otros dos registros X y Y, son como las manos que cogen los bytes y los direccionan a grandes velocidades ya sea a la pantalla, ya a la impresora, o los archivan en el disco o en la RAM. Las 140 rdenes que constituyen el llamado Assembly (ensamblador) se pueden sintetizar en unas 60 palabras y sus nemotcnicos. Con 140 claves o cdigos un computador puede hacer todas las cosas que hace. Podemos pues decir que el computador maneja el idioma ms fcil de aprender pues su diccionario no pasa de 200 palabras. Estos Mnemotcnicos se pueden juntar en grupos de operaciones similares que facilitan su aprendizaje como son: load: LD = cargar; push: PH = empujar; transfer: T = transferir; incrementar: IN; store: ST = guardar. Vamos a ver este lenguaje tan simple con el que se da rdenes al computador, pero primero aclaremos algo importante: Los registros En la Unidad Central de Procesamiento (CPU) hay 7 registros muy importantes. Los registros son el alma de computador. Constan de Casillas de memoria con puntos pequesimos donde se guarda voltaje positivo o negativo algunas de 16 bits otros de 8 y un pequeo programa que lo capacita para su funcin. 1. El registro de direcciones o contador PC. El computador es una bodega de almacenamiento con billones de casillas, su nmero actualmente se mide en Gigas. Estas bodegasPgina 22 de 74

unas estn en el disco duro, otras en los CD o en las memorias USB, otras en la memoria RAM. Cada casilla de memoria almacena 16 bits y est conectada por un

doble cableado, 1. el bus de direcciones que indica la posicin de la casilla y que la conecta con el Registro Contador encargado de abrirla y cerrarla, y 2. el bus de datos por donde sale y entra la informacin. El registro de direcciones es el encargado de abrirlas ya sea para sacar, ya para meter informacin. Cuando se enciende el computador, el registro de direcciones o contador comienza a contar todas las memorias siguiendo un orden estricto de la primera hasta la ltima. Cuando usted aplica Reset o Ctr/Alt/Del, el registro vuelve a recontar desde el inicio todas las memorias. Este registro es por lo tanto el encargado de numerar todas las memorias que hay en el computador. Toda bodega, o sea directorio, donde haya guardado un programa o un archivo est etiquetada por un nombre que indica el nmero correspondiente de la casilla en que est ubicado, y con estos datos, el registro contador la puede hallar. Este registro al comenzar el conteo de las priPgina 23 de 74

meras casillas, las abre pues all se encuentra el sistema operativo (DOS, Windows) que inmediatamente sube a la RAM desde donde comienza a operar. 2. Registro de bandera (Procesor Status PS) permite saber si ha habido acarreo en una suma o resta, o si el nmero que se origin en una operacin es negativo o positivo, o si una comparacin es verdadera o falsa. Es el registro de las condiciones (if then). Estas cosas se pueden saber leyendo cada uno de los 8 bits del registro con un proceso llamado enmascarado. 3. El acumulador (A) es tal vez el registro ms importante porque mueve casi toda la informacin que va a ser procesada. Cuando el Contador PC abre y cierra Casillas, el que recibe o mete informacin en ellas, es el Acumulador ayudado por el par de registros X y Y que tambin tienen la misin de sostener por breve tiempo en sus Celdillas los datos procedentes de las memorias que van a ser procesados en los circuitos (chips de lgica) del computador. El acumulador ayudado por estos dos auxiliares (los registros X y Y) recoge los datos procedentes de las Casillas de memoria que se abren una a una, y los enva a los circuitos de la ALU (Unidad de Lgica cableada, ver figura) para que all sean procesados. De regreso los recibe ya transformados y los vuelve a archivar en sus Casillas. Estos tres registros son como bandejas, manos agilsimas de prestidigitador, que reciben los datos y los envan a la ALU para procesarlo, y a velocidades no imaginables, los vuelven a colocar en sus estantes. 4. El registro de Pila SP (stack pointer), guarda ciertas direcciones que le entrega el Contador cuando se ve obligado a dejar el orden que llevaba y tiene que ir a abrir Casillas en otros corredores y bloques lejanos. Al volver, el registro de pila le recuerda el nmero de la ltima Casilla que abri, pues como dijimos las Casillas se abren en orden para que de cada una de ellas salga la orden o el dato que all se archiv. 5. Registro de instrucciones, all se carga la orden que debe ejecutar el computador en ese momento, se compara en la tabla de una ROM para interpretarla, y se enva a la ALU a travs de un cableado que se llama buses de control para que la lleva a cabo. Estos registros, como queda dicho, son Casillas cuya informacin no es esttica sino que constantemente estn recibiendo datos archivados en la RAM, los cuales meten en los circuitos lgicos que los procesan y despus los vuelven a entregar a la RAM, y finalmente los guardan en unidades como CD o USB o en el disco duro. Operaciones principales y sus Mnemotcnicos 1) Cargar: una de las rdenes ms comunes, es la de cargar estos registros. Para cargar el acumulador, el registro X o Y, el registro de banderas, la Pila se emplean palabras fciles de recordar: Load (cargar), Push (empujar) y Pull (sacar), Los Mnemotcnicos son: LDA (cargar acumulador), LDX, LDY (cargar registros X y Y), PHA (empujar el acumulador en la Pila), PHP (empujar el acumulador en el registro de banderas), PLA, PLP (sacar: pull, hacia el acumulador, la Pila y el registro de banderas). O se emplea la Palabra TRANSFERIR lo que quiere decir que el contenido que tiene un registro, pasa a otro registro as: TAX (Transfer Accumulator to X); pase lo que hay en el Acumulador al registro X. De idntica manera TAY (pasar del Acumulador a Y), TXA (pase lo que hay en X al Acumulador). TSX yPgina 24 de 74

TXS (pase lo que hay en X a la Pila o viceversa). Tambin se emplea la palabra Store (guardar) STA, STX, STY (store acumulator, store register X o Y) que ordena guardar lo que hay en cualquiera de esos registros, en alguna parte de la RAM. Mejor dicho gran parte de las rdenes tratan del traslado de los datos entre registros y memorias. Usted se puede imaginar el computador como un constante correo de datos a travs de los buses, donde los datos pasan por diferentes registros y vuelven a las memorias. 2) Incrementar o disminuir: Los registros X y Y estn diseados para que su contenido pueda ser aumentado o disminuido de uno en uno con las rdenes INX, INY (incremente X o Y) y la orden DEX, DEY (disminuya X o Y). Esta orden es muy til y ya la empleamos en nuestro programa de divisin cuando incrementamos el contador R. Sirve para repetir varias veces un bucle. Equivale al For to Next del Basic. 3) Comparar: operacin muy til en donde funciona el registro de banderas que es el encardado de decir si la comparacin fue verdadera (1) o falsa (0). Esta orden aparece as: CMP, CPX, CPY y Comparan el contenido de lo que hay en el acumulador o en el registro X, o en el registro Y, con el contenido de cualquier Casilla de la RAM que se indique. 4) Saltar: Se dice que un programa salta, cuando se rompe el orden en que el Contador est abriendo las Casillas. Por ejemplo el Reset es un salto, porque el Contador vuelve a comenzar a contar las casillas desde un principio. Cuando se resetea se borra todo lo escrito en la RAM: o sea se descarga el programa. Hay otros saltos que no borran la RAM y que permiten al Contador volver al sitio desde donde salt. Se emplea el Mnemotcnico ingls BRANCH (rama o desvo). Para saber cmo opera, hay que mirar cada uno de los 8 bits del Registro de Banderas que es el que pone las condiciones del salto. He aqu algunas: BCC: salte si no ha habido acarreo. BCS: salte si hay acarreo (branch on Carry Clear o Set). BEQ (Branch on result Equal zero): salte si el resultado fue cero (verdadero: 1). BNE (Branch on result Not Equal zero): saltar si dio 1 (resultado falso). Hay un salto definitivo que no permite devolverse al sitio desde donde se salt y es JMP (jump). En Basic se utiliza Goto y Gosub.

ROR

1

0

0

1

0

1

0

0

=

0

0

1

0

1

0

0

1

5) Rotar: rotar un byte a la izquierda o a la derecha o hacerlo girar por el lado derecho o izquierdo, fue lo que empleamos al explicar la multiplicacin que dijimos que cuando se multiplica por cero basta correr hacia la izquierda. El Mnemotcnico es ROL (rotate left), ROR (rotate right).

0

0

1

0

1

0

0

1

=

1

0

0

1

0

1

0

0

Pgina 25 de 74

Vamos a escribir un programa sencillo en ASSEMBLY. Para entenderlo mejor escribimos en la primera columna los nemotcnicos que acabamos de explicar (LDX, LDA , STA, INC), en otra columna escribimos la misma orden escrita en numeracin hexadecimal (A2, A9, 9D, E8), en la tercera columna va lo que realmente est leyendo el computador, o sea el nmero binario indicado por voltaje (1) y ausencia de voltaje (0). La ltima columna indica el sitio donde hemos metido el programa, o sea la numeracin las casillas de la RAM donde se encuentra el programa. Con esto lograremos conocer cmo un computador leyendo ceros y unos hace oficios rapidsimo y con habilidad. Este pequeo programa contiene una rutina muy empleada en todos los lenguajes que limpia la pantalla del computador. Todo computador tiene una reserva de memoria que va conectada a la pantalla, de tal forma que lo que ntre en esa memoria, inmediatamente se ve en la pantalla. Supongamos que en su pantalla caben 24 renglones de 40 letras, o sea un total de 24X40=960 letras. En la MEMORIA debe haber 960 bytes reservados para cada punto de su pantalla. Es lo que se llama Mapa de Pantalla (Screen Map). Voy a suponer que el Mapa de Pantalla (Screen Map) de su pantalla est colocado entre las casillas 400 y 1360 de la memoria RAM, lo que da en total 1360 400 = 960 bytes. Para limpiar la pantalla se deben llenar esos 960 bytes del Screen Map con un espacio en blanco (ASCII 32) lo que ejecutar el siguiente programa: Explicacin: La orden LDX 00 (load el registro X con cero) nos carga el registro X con un cero. En numeracin hexadecimal la misma orden se escribe as A2 00, pero en realidad el computador est recibiendo una serie de pulsos elctricos que nosotros representamos por ceros y son 1010 que corresponden a la A y 0010 = 2. Estos 8 bits los metemos en la casilla nmero 2000. El 00 de la orden A2 00 lo tenemos que meter en la siguiente casilla. Esta orden ocupa dos bytes (casillas). La orden LDA 32, nos carga el acumulador con un 32 que corresponde en ASCII al espacio en blanco. Con ese espacio en blanco vamos a limpiar la pantalla. O sea vamos a poner ese blanco en todos los sitios de la pantalla para que borre lo que hay en ella. Suponemos que la pantalla tiene 24 lneas de 40 columnas y que el Screem Map (Mapa de Pantalla) comienza en la casilla 400. La orPgina 26 de 74

den STA 400,X coloca el espacio en blanco que hay en el acumulador en la casilla 400 y as la primera letra del primer rengln de la pantalla, queda borrada. Las rdenes STA 655,X; STA 910,X: y STA 1105,X, colocan el mismo signo a una distancia de 255 casillas adelante una de otra, o sea que la primera letra de los renglones sexto, duodcimo (12) y decimoctavo (18) de la pantalla quedan borrados La orden INX incrementa lo que hay en el Registro X en uno. Como haba cero ahora el Registro X contiene un uno. La orden BNE ordena que si el registro X no es igual a Cero, d un salto a la casilla 2004. Como el registro est en uno, brinca de nuevo a la orden STA 400,X. Ahora la X es uno y la posicin 400,X sube a 401. Lo mismo ocurre con los dems STA cuyas posiciones suben uno, o sea que quedan borradas las casillas 401, 656, 911 y 1106. Vuelve a incrementarse la X. Ahora la X es 2 y la posicin 400, X sube a 402. Lo mismo ocurre con los dems STA cuyas posiciones suben uno, o sea que quedan borradas las casillas 402, 657, 912 y 1107.Se repite el ciclo borrando posiciones sucesivas de la pantalla. Este ciclo se repetir 225 veces entonces todos los bits del Registro X se llenan 11111111 = 225, al incrementarlo una vez ms, hay acarreo as: 11111111 + 1 = 1 00000000 y todos los bits quedan en cero. El condicional BNE al captar el 0 del registro deja pasar el programa a la siguiente casilla 2018 donde acaba el programa despus de haber borrado toda la pantalla. El programa anterior visto desde dentro El dibujo trata de visualizar lo que est pasando dentro del computador cuando va a ejecutar el anterior programa. En el mostramos los diferentes registros y un esquema cmo van conectados, a travs de los buses de control, entre s y al mapa de Video de la RAM (screen map). Podemos ver el registro de instrucciones que es el encargado de recibir los datos y enviarlos a la ROM decodificadora. All hay una tabla o diccionario con todas las rdenes que puede recibir un computador, donde se comPgina 27 de 74

para el dato recibido y al encontrarlo en la tabla, lo manda a ejecutar. Vemos tambin el Registro Contador que movido cclicamente por un reloj cuya velocidad va en megahertzios, es el encargado de abrir las casillas donde se encuentra nuestro programa. 1 El registro Contador, sincronizado por los pulsos de un reloj, abre la casilla 2000 de la RAM y el dato que contiene A2 es recibido por el registro de instrucciones al pie del cual est la ROM decodificadora, en donde hay un diccionario de palabras. Se busca la palabra A2, la interpreta y de inmediato la ejecuta abriendo el registro X. 2.El Contador, movido por el siguiente pulso de reloj, abre la casilla 2001 y de all sale el 0 que entra al registro-X al encontrarlo abierto. 3. El Contador, movido por el ciclo del reloj, abre la casilla 2003 y el Registro de instrucciones recibe el A9. Ayudado de la ROM lo interpreta y lo ejecuta abriendo el acumulador. 4 El Contador, sincronizado por el reloj, abre la casilla 2003 donde est el cdigo ASCII 32 y ste entra al Acumulador al encontrarlo abierto. 5. El Contador siempre movido por los pulsos del reloj, abre la casilla 2004 donde est la orden 9D y el Registro de instrucciones y la ROM codificadora la interpretan y la ejecutan. All se ordena abrir la casilla 400, orden ejecutada por el Registro Contador, y meter en ella el cdigo de borrado ASCII 32 cargado por el Acumulador. Las siguientes instrucciones contenidas en las casillas2007 al 2014 son idnticas a la anterior, lo nico que cambian son las casillas que se abren para recibir el cdigo de borrado ASCII 32. La pantalla comienza a borrarse rapidsimamente. Cuando el contador abre la casilla 2016 el Registro de instrucciones ayudado de la ROM descifran la orden E8, inmediatamente el Registro X que haba sido cargado con un cero se incrementa a 1. El Contador abre la casilla 2017 y all encuentra un condicional y se genera un bucle de repeticiones que devuelven varias veces el programa a la casilla 2004. En cada pasada se va incrementando el contenido del Registro X en una unidad por la orden E8. El constante acarreo de 1 al cabo de 255 repeticiones del bucle llena el registro X con ese nmero 11111111 y al sumarle 1, el acarreo da 00000000 o sea que el registro X queda descargado en 0 lo que permite el paso del programa a la casilla 2018 donde finaliza. Este cambio del valor de la X desde cero hasta 225, hace que el STA de las rdenes dadas en las casillas 2004, 2007, 2011, 2013 aumente tambin subiendo los valores de las casillas del Mapa de caracteres 400, 6555, 910, 1005 donde se va almacenando el cdigo ASCII que borra totalmente la pantalla.

La ROM del teclado se asemeja a los relojes y avisos luminosos encendiendo pequeos LEDs para reproducir las letras. Apenas entra un cdigo en la tabla de la ROM encontrar qu LEDs se deben encender.

Pgina 28 de 74

En la RAM hay una zona reservada para la pantalla llamada Mapa de Video. Todo lo que entre en esa zona, aparecer en la pantalla. A cada posicin en la pantalla le corresponde un byte. Suponemos que en el mapa de video comienza en la casilla 400 de la RAM y termina en la 1360. JAI ocupa las tres primeras casillas o bytes (400 401 y 402). Si su pantalla es de 40 caracteres, ME ocupar las casillas 44O y 441. Si metemos JOSE en las casillas 1357 a 1360, aparecer en el fondo de su pantalla si esta tiene 40 caracteres y 24 lneas. La letra C en pantalla y en la ROM

Cmo Trabaja la ALU

Operaciones lgicas AND, OR, NOT

Ahora s entramos de lleno al alma del computador: La ALU (arithmetic logic unit), unidadaritmtico lgica, encargada de operaciones como sumar, restar, multiplicar y de ejecutar las rdenes dadas al computador. Vamos a entrar a un tema, muy

sencillo y fcil de entender, de mucha importancia para que usted comprenda cmo es que el computador a travs de la ALU, resuelve con un lenguaje elemental, los oficios tan diversos que debe ejecutar. Para entender la sencillez de las operaciones lgicas AND y OR, miremos las dos tuberas que hemos dibujado. Un 1 quiere decir que pasa el agua, la llave est abierta y un 0, no est pasando o saliendo agua porque alguna llave est cerrada. El agua circular en el primer circuito s y nicamente s ambas llaves estn abiertas. Este tipo de circuito se le llama AND y su tabla de combinaciones es la siguiente: Llave A llave B salida 1 posibilidad: 0 0 0 2 posibilidad: 0 1 0 El smbolo es 3 posibilidad: 1 0 0 4 posibilidad: 1 1 1

Pgina 29 de 74

Hemos analizado las cuatro posibilidades en que pueden estar combinadas las posiciones de las llaves y el resultado. La conclusin es que sale agua si la llave A y (AND) la llave B estn abiertas. En el segundo circuito el agua circular si alguna de las dos o las dos juntas estn abiertas. A este tipo de circuito se le llama OR y su tabla de combinaciones es la siguiente: Llave A llave B salida 1 posibilidad: 0 0 0 2 posibilidad: 0 1 1 3 posibilidad: 1 0 1 4 posibilidad: 1 1 1 Y leemos: saldr agua si la llave A o (OR) la llave B, o si ambas llaves estn abiertas.

El smbolo es

Se pueden construr circuitos NOT y ellos se encargan de apagar cuando se enciende un interruptor. Si analiza el interruptor del circuito A, ver que si se enciende, A = 1, se activa el electroimn, atrae el interruptor del circuito a, y se apaga el bombillo: a = 0. Cuando el interruptor del circuito A, est apagado, A = 0, deja de funcionar el electroimn, se cae el interruptor del circuito a que sostena elevado el electroimn y se enciende el bombillo, a = 1 .

Como el NOT se aplica a un solo interruptor su tabla de combinaciones es esta: NOT A: A salida Primera posibilidad 0 1 El smbolo es Segunda posibilidad 1 0 O sea que el circuito NOT de 1 es siempre 0 y el de 0 es siempre 1. El circuito NOT entrega por lo tanto el complemento del bit. El complemento de A lo representamos con a, el de B con b y en general el complemento de cualquier bit F lo representamos con f . S F=0 entonces f =1. Si F = 1 entonces f = 0. Tambin lo llaman Negado y se dice el Negado de A es A o tambin , el Negado de E es E o tambin

Pgina 30 de 74

Hay un circuito llamado NAND y simplemente es un NOT AND, o sea que a la salida AND se le aade un NOT que invierte el resultado: si sali positivo se vuelve negativo, y si sali negativo, se le aade un circuito que lo vuelva positivo. Hay un circuito llamado NOR y simplemente es un NOT OR, o sea a la salida OR se le aade un NOT que invierte el resultado: si sali positivo se vuelve negativo, y si sali negativo, se le aade un circuito que lo vuelve positivo.

El smbolo: AND y una bolita en la punta

NAND

El smbolo: OR y una bolita en la punta

NOR

Con los anteriores circuitos se puede hacer otro tipo de operaciones lgicas. Una de ellas se llama XOR y su tabla de combinaciones es la siguiente: Interruptor A interruptor B salida Primera posibilidad: 0 0 0 Segunda posibilidad: 0 1 1 Tercera posibilidad: 1 0 1 Cuarta posibilidad: 1 1 0 Permite salir la corriente nicamente si uno de los dos interruptores est encendido. No pasa si ambos estn encendidos o ambos apagados.

Smbolo:

Las operaciones anteriores se pueden hacer con ms de dos entradas. El diagrama muestra circuitos AND y OR de tres entradas (interruptores) y sus correspondientes smbolos.

Salimos del mundo de las matemticas y entramos ahora al mundo maravilloso del lgebra boleana donde si A = 1; B = 1 y C = 1, A+B+C = 1. Ya no da 3 como en aritmtica pues el ms (+) significa que los interruptores estn en paralelo (fig 2) y si A,B,C estn encendidos (1) o alguno de ellos est encendido, pasa la corriente (1). No son 3 bombillos que se encienden. La siguiente operacin A(B+C) = 1(1+1) no es igual a 1(2)=2 como en aritmtica, sino que da 1, pues A(B+C) indica que la corriente est pasando por tres interruptores, uno en serie A y dos (B C) en paralelo. Se tiene que acostumbrar a ver igualdades como sta: A = AB+Ab, lo que ver lgico si piensa en interruptores de corriente elctrica ya sea en serie A.B =(AND) ya sea en paralelo A+B =(OR). Es importante que elabore los ejercicios que le vamos a proponer para que se acostumbre a esta nueva lgebra.

Pgina 31 de 74

Pgina 32 de 74

Lgica negativa Sea A=1010 y B=1100 dos nmeros de 2 o ms bits a los que le aplicamos el operador AND: A AND B a OR b 1 1=1 0 0=0 0 1=0 1 0=1 1 0=0 0 1=1 0 0=0 1 1=1 Si mira la tabla del frente en la que hemos cambiado todos los unos por ceros y todos los ceros por unos, ver que la tabla AND, se convirti en una tabla OR. Ahora bien, si en una tabla OR cambiamos todos los 1 por ceros y todos los ceros por 1, nos sale una tabla AND. Hagamos el ensayo. Sean los mismos nmeros y apliquemos un OR. Al frente copiamos una tabla que tenga los complementos de la primera, o sea ceros donde hay unos y unos donde hay ceros: A OR B a AND b 1 1=1 0 0=0 0 1=1 1 0=0 1 0=1 0 1=0 0 0=0 1 1=1 De lo anterior deducimos que es lo mismo aplicar un AND entre A y B que un NOR entre sus complementarios a y b. La solucin que sigue el segundo camino se llama Lgica Negativa. Frmulas Cuando varias entradas se aplican a un circuito AND, decimos que esas entradas se multiplican. Sean las entradas A=1; B=1 y C=1. Si se les aplica un AND tenemos que:

Si alguna de ellas es de valor cero, por ejemplo C=0, entonces: AxBxC = ABC = 1x1x0 = 0 O sea que el circuito AND equivale a una multiplicacin. De idntica manera el circuito OR se le compara a una suma. Sin embargo la suma booleana no coincide con la suma aritmtica. A OR B lo vamos a representar como A+B. O sea que podemos hacer la siguiente equivalencia:

Podemos sintetizar las dos anteriores operaciones de multiplicacin y de suma booleana diciendo que si alguna de las entradas a un circuito AND es cero, el resultado es cero. Si una de las entradas a un circuito OR es uno, el resultado es uno.

Pgina 33 de 74

Ejercicios sobre frmulas AND OR Los siguientes ejercicios lo van acostumbrando a pensar de manera sencilla cmo resuelve problemas un computador. Recuerde que el complemento de A es a. Si A = 1 entonces su complemento es a = 0 y si A = 0 entonces su complemento a = 1. D l resultado de las siguientes operaciones: 1) A.a= 2) A+a= 3) A.a+ B.b= 4) (A+a) + (B+b)= 5) A+1= 6) B.0= 7) (A+a)(B+b)= Respuestas: 1) A.a= 0 porque si A=1 entonces, A.a=1x0=0 y si A=0, entonces A.a=0x1=0: todo nmero multiplicado por su complemento da cero. 2) A+a=1 porque si A=1 entonces, A+a= 1+0=1 y si A=0 entonces, A+a=0+1=1: todo nmero sumado con su complemento da 1. 3) Segn lo dicho da 0 pues A.a= 0 y B.b=0 y 0+0=0. 4) Da 1. Resolvamos cada parntesis (A+a)=1; (B+b)=1 y 1+1=1. Recuerde que se trata de un OR o suma booleana y cuyo principio es: si una de las entradas es 1, o si las dos entradas son 1, la salida es 1. No confunda el OR con la suma binaria que en este caso dara 102 y que despus veremos. 5) Por lo dicho anteriormente, da 1, pues es un OR con una entrada de uno y aunque la A valga 1, los dos 1 en un OR dan 1. 6) Da cero segn queda dicho que en toda multiplicacin (AND) si uno de los factores es cero, da cero. 7) Da 1 porque A+a=1 y B+b=1 y uno por uno da uno. Tablas y operadores lgicos Vamos a dibujar los operadores lgicos y a mostrar las tablas de los ejercicios que acabamos de hacer. Es muy importante que aprenda a leer las siguientes tablas y a dibujar los operadores. Leamos la tabla 1) F=A.a. Debajo de la A hay un 1 y un O nicos valores que puede tener la A. El primer rengln se lee: si la A vale 1 entonces a=0 y la multiplicacin A.a da 1x0=0. El segundo rengln se lee: si la A vale 0, entonces a = 1 y la multiplicacin A.a = 0. La tabla muestra todos los valores y resultados posibles de la funcin: F=A.a. Si mira el dibujo el AND est alimentado por A y su complemento. El circuito dibujado resuelve tambin todos los valores posibles de la misma funcin. Leamos la funcin 3) F=A.a + B.b Debajo de AB estn todos los valores posibles de estas letras 00 01 10 11. El primer rengln de la tabla se lee: Si A=0 y B=0 entonces a=1; b=1; Aa=0x1=0; Bb=1x0=0; Aa+Bb=0+0=0. Leamos el ltimo rengln: Si A=1 y B=1 entonces a=0 y b=0; Aa=0 yPgina 34 de 74

Bb=0 y por supuesto Aa+Bb=0. L a tabla contiene todos los valores posibles de la funcin F=A.a+ B.b, y el circuito dibujado da la solucin a todas esas posibilidades. Lea como ejercicio, y compruebe la veracidad de las siguientes tablas y sus circuitos: .

Aplicaciones prcticas: 1) Comparacin de bytes Supongamos que en el registro X tenemos el siguiente byte 11100111 y en el acumulador tenemos otro byte. Queremos saber si ambos bytes son iguales o no. Para saberlo enviaremos ambos bytes a un circuito XOR y luego los bits del byte que salga, los procesaremos con la tcnica conocida como cascada: 1) coloquemos en el acumulador un byte igual al que hay en el Registro X: 11100111 y enviemos ambos bytes a un circuito XOR:

A los bits del byte resultante 00000000 le aplicamos OR tomndolos por parejas en cascada as: El resultado fue cero. O sea que cuando ambos bits son iguales, esta tcnica nos dar cero como resultado.Pgina 35 de 74

Ahora apliquemos la misma tcnica pero carguemos el acumulador con un byte diferente: Registro X 11100111 Acumulador 01110101 X XOR Acumulador 10010010 Apliquemos a los bits de este byte resultante un OR en Cascada. Si da 1 entonces los bytes que haba en el Acumulador y en el Registro X eran diferentes: La comparacin nos dio un 1, o sea que los bytes son diferentes. 2) Un sumador de dos bits Vamos a ver otra aplicacin sencilla: Tenemos dos seales A y B de un solo bit. Queremos sumarlas con suma aritmtica (en la suma aritmtica 1+1 = 102 , hay acarreo), no booleana. ( en la booleana 1+1= 1 no hay acarreo) . He aqu las cuatro posibilidades y el resultado: Seal A seal B resultado Primera posibilidad 0 + 0 = 0 Segunda posibilidad 0 + 1 = 1 Tercera posibilidad 1 + 0 = 1 Cuarta posibilidad 1 + 1 = 2 (102, o sea O y acarreo). En la tabla se encuentran todos los valores y resultados posibles de la suma de los dos bits. Leamos el primer rengln de la tabla: Si A=B=0, la suma A+B=0, y AxB=0. El segundo rengln: Si A=0 y B=1, la suma A+B=1, y AxB=0. El tercer rengln A=1 y B=0 entonces A+B=1, y AxB=0. Hasta este rengln no hay acarreo, el cual detectaremos con la columna A.B. En el ltimo rengln AB=11 la suma A+B da 0 porque hay acarreo (o sea el 1+1=0 y acarreo). La tabla A.B es un AND que nos detecta el acarreo y lo coloca en el del segundo nivel 10. Los cuatro resultados posibles de la suma de los dos bits (0+0; 1+0;0+1;1+1) salen representados por los nmeros 00 01 01 10 por las puntas del AND y del XOR as:. AB A+B A.B 00 01 10 11 0 0 0 1 0 1 1 0

Como puede ver el chip tiene dos salidas XOR para unidades y AND, segundo nivel por si hay acarreo

Pgina 36 de 74

Para aprender a resolver problemas con los operadores lgicos AND OR y NOT debe familiarizarse con las tablas de combinaciones, las frmulas y los operadores que las representan. 3) Enmascaramiento Veamos la aplicacin de la tcnica de enmascarado. Tenemos en el registro de Banderas cualquier byte que desconocemos. Por ejemplo el 01011101. Deseamos conocer si en el ltimo bit de la derecha, llamado de Acarreo, hay un cero o un uno. Aplicamos un AND con el nmero uno (00000001) con el fin de borrar todos los dems bits: Registro Banderas = 01011101 nmero 1 = 00000001 Registro Banderas AND 1 00000001 El resultado nos dar uno si hay un uno, o cero si hay un cero. En este caso nos ha dado un uno. La tcnica del enmascarado es muy empleada para leer los bits del Registro de Banderas. Nos parece importante que usted conozca ms sobre lo que hace cada bit del Registro de Banderas, y por qu el inters de conocer si hay un = 0 o un 1 en alguno de los 8 bits de ese registro. El Registro de Banderas PS (Procesor Status) o simplemente P (Procesor), no est diseado para recibir datos de la RAM sino de la ALU. Sus ochos bits enumerados del 0 al 7 se les distingue con las siguientes letras: 7 N 6 V 5 4 B 3 D 2 I 1 0

Z C

El bit 0 Carry Flag, bandera de acarreo se pone en 1 cuando hay un acarreo de suma y en cero cuando el acarreo es de resta. Antes de sumar se le debe colocar en cero con la orden CLC (Clear Carry). Y antes de restar se le debe colocar en uno con la orden SEC (Set Carry). Las rdenes BCC (Branch on Carry Clear) o la orden BCS (Branch on Carry Set) son muy empleadas en programacin y se ejecutan al leer este bit que acta como una bandera que da o prohbe el paso en un bucle Goto. Nosotros la empleamos en nuestro programa para limpiar la pantalla. El bit 1: Zero Flag. Este bit se pone en 1 siempre que una suma, una resta, una comparacin, dan 0. O sea, toma como verdadera la comparacin. Si el resultado es otro, se pone en cero. La orden BNE (Branch if Not Equal) es un condicional muy empleado y ejecutar un salto si el bit se mantiene en 0. La orden BEQ (Branch if Equal) dar como verdadera la comparacin si muestra un 1 y entonces el bit acta como una bandera que ordena un salto.

Pgina 37 de 74

El bit 2: Interrupt Disable, Bandera de interrupciones. Cuando un computador est trabajando, a veces se le puede interrumpir en su tarea para que emprenda otra: otras veces no porque esto causara una catstrofe. Para que esto no suceda se emplea este bit. Bit 3: Decimal Mode Flag. Este bit sirve para colocar el Modo Decimal y de coma flotante. Bit 6: Overflow Flag. Bandera de acarreo entre el bit 6 y 7. Cuando se estn empleando signos en los nmeros, se debe tomar el acarreo entre el bit 6 y 7 y no en el bit 7. Bit 7: Negative flaq. Esta bandera se pone en 1 si el resultado de una operacin es negativo y en 0 si es positivo. Se utiliza mucho en condicionales. Todos los condicionales que se emplean en programacin Basic, tienen que ver con este registro. En los pequeos programas que hemos explicado tanto de Basic como el de lenguaje Assembly, haba condicionales que devolvan el programa y hacan repetir rdenes ya ejecutadas (bucle). Por eso nos detuvimos a explicar este utilsimo recurso que emplea la ALU para dar ciertos resultados. Ahora bien para leer cualquier bit de este registro, se le aplica la operacin lgica AND (enmascarar) y un nmero segn el bit que se desee leer as: Para leer el bit cero AND 1 (00000001) Para leer el bit dos AND 2 (00000010) Para leer el bit tres AND 4 (00000100) Para leer el bit cuatro AND 8 (00001000) Para leer el bit cinco AND 16 (00100000) Para leer el bit sptimo AND 128 (10000000) Pues con ese AND se suprimirn todos los dems bits, menos el que se pretende leer que si es cero, con el AND dar cero, y si es uno dar uno. Hemos visto as otra sencilla aplicacin del AND. Repasemos Qu es un registro Un registro es una casilla normalmente de 8 bits en los micros que est en la CPU. Cada registro cumple una misin diferente. El contador que tiene 16 bits a travs de los buses de direcciones, enumera, reconoce y abre un total de 216=6556 casillas. El registro de instrucciones es el primero que se abre. All guarda la orden que a travs de un decodificador (ROM o tabla fija de instrucciones) es interpretada y llevada hasta la ALU por unos buses internos, llamados buses de control para que la ejecuten. El acumulador y los registros X y Y reciben, a travs de los buses de datos, los contenidos de las casillas de la RAM que ha abierto el registro contador, los envan a la ALU, los recogen ya procesados, y los guardan. El registro de Banderas est conectado con la ALU y avisa si ha habido acaPgina 38 de 74

rreo, si al comparar dos bytes resultan iguales. Se utiliza para comparar el byte recogido por el acumulador y sus dos registros auxiliares X y Y, con las rdenes o caracteres escritos en la ROM e interpretarlo. Es un registro muy importante pues con l se aplican las condiciones if then (si tal bit est en 0 o en 1 vaya a tal casilla). Le dice a la ALU si debe leer los nmeros en binario o en decimal. Para leer cada bit del registro de banderas, se le aplica a su contenido un AND con los nmeros 1,2,4,8,16 en binario segn el bit que se desee leer, para saber si la condicin sigue vigente. El registro Pila recuerda al registro contador, la casilla en que iba, cuando por alguna circunstancia se va a buscar rdenes en casillas lejanas. Si nos metiramos dentro del computador, veramos traspasar continuamente datos de las Memorias a los Registros y de stos a la ALU, cortados en paquetes de bits por el ciclo rtmico de un reloj, con una precisin y velocidad impresionantes. Bsicamente la operacin fundamental de un computador es trasladar cargas de un lado para otro. Las mete en unos circuitos lgicos en determinado orden segn el efecto que se desee. Estos circuitos que estn en la ALU, hacen las operaciones lgicas XOR, OR, AND, NOT. A travs de ellas comparan, suman, restan. Normalmente a la ALU entran dos bytes que son sumados, restados, comparados, girados; y se entrega un resultado. Por eso se le representa como una V, con dos entradas y una salida. Todo este movimiento se hace a travs de unas 140 palabras claves escritas en hexadecimal (A9, 8D0) e interpretadas en binario por el computador (1010 1001; 1000 1101 000) que se pueden reducir a unos 10 esquemas que contienen las funciones principales como cargar, incrementar, comparar, saltar, rotar, sumar, restar. Ejercicios sobre tablas y operadores lgicos Complete los siguientes esquemas:

Respuestas: a) 1; b) 1; c) 1; d) 0 f) 0;

g) 1; h) 1.

Complete los siguientes esquemas y escriba sus frmulas con los resultados: a) b) c)

d)

Pgina 39 de 74

Respuestas: a) A.A = A; b) A+A = A; c) a.A = 0; d) a+A = 1.

Escriba las frmulas y haga la correspondiente tabla de todos los valores posibles de los siguientes esquemas: a) b)

c)

d)

Respuestas:

Los siguientes son teoremas del lgebra booleana muy empleados para simplificar expresiones: 1) X = XY + Xy 2) X= X + XY 3) X = (X+Y) (X+y) 4) X = X (X+y) 5) XY = (X+y)Y 6) X+Y = Xy+Y Si elaboramos las tablas de combinaciones, y dibujamos los diagramas de las anteriores ecuaciones nos daremos cuenta de que es cierta la igualdad que enuncian: Inclumos algunas respuestas:

Pgina 40 de 74

1

2

3

4

5

6

Pgina 41 de 74

Conocida la tabla, buscar la frmula Ya hemos aprendido, dada una funcin, a desarrollar la tabla con todos los valores posibles y dibujar los operadores que la ejecutan. Vamos ahora, conocida la tabla, a buscar la frmula y dibujar los operadores que la ejecutan. Este paso es bsico para comprender cmo se solucionan los problemas a travs de un computador. Comencemos con un sencillo problema que le vamos a entregar al computador para que lo solucione: Por las puertas A y B de un almacn, estn constantemente entrando personas y necesitamos saber cundo se abre la puerta A, lo que indicaremos encendiendo un bombillo F siempre que la puerta se abra. Escribamos la tabla que representa todas las posibilidades en que se pueden encontrar las puertas y la reaccin que tendra el bombillo F. El 1 indica AB F que se abri la puerta A o 1. 0 0 0 a.b = 0 al frente de cada lnea va el producto A.B 2. 0 1 0 a.B = 0 fjese que cuando A = 0, colocamos a B y el 0 indica que la 3. 1 0 1 A.b = 1 fjese que cuando B = 0, colocamos b puerta est cerrada y que 4. 1 1 1 A.B = 1 el bombillo est apagado. Una vez elaborada la tabla de todas las posibilidades, para resolverla, se escribe delante de cada rengln el producto del valor de A por el de B. Hechas las multiplicaciones y su resultado, se puede resolver la funcin de dos maneras: 1) Se suman todos los productos que den 1. En el ejemplo seran las lneas 3. y 4. y la solucin sera: F = A.b + A.B. La solucin nos est diciendo que el bombillo F da 1 (est encendido) slo en dos casos: Cuando A est abierta y b cerrada, o cuando A y B estn abiertas. 2) Se suman todos los productos parciales que den 0 que en el ejemplo corresponden a las lneas 1. y 2. y la respuesta sera el complemento de la anterior: f= a.b+ a.B. La frmula nos dice que el bombillo f est apagado, slo en dos ocasiones: Cuando a y b estn cerradas o cuando a est cerrada y B abierta. Ejercicio: escriba las frmulas que resuelven las siguientes tablas: 1) A B00 01 10 11 F 1 1 0 0

2) A B00 01 10 11

F 0 0 0 1

3) A B00 01 10 11

F 1 1 0 1

Respuestas 1) F = ab + aB; 2) F = AB; 3) F = ab+ aB + AB, o si usted prefiere saca las frmulas complementarias: 1) f = Ab + AB; 2) f = ab + aB + Ab; 3) f = Ab.

Pgina 42 de 74

Solucin de algunos problemas sencillos El procedimiento para resolver problemas con operadores lgicos, puede ser el siguiente: 1) Se hace una tabla de todas las combinaciones posibles. 2) Se buscan las frmulas que den 1. 2A) Si usted prefiere busca las frmulas que den 0, y sigue la lgica complementaria. 3) Se simplifican las frmulas. Hay varios mtodos para ello. Un mtodo muy conocido son los mapas de Karnaugh. Mostraremos algunos. No los explicamos; slo lo dibujamos como memorndum para quienes los estudiaron. Si usted no est muy familiarizado con la simplificacin, le recomendamos el libro de Charles Roth que citamos en la Bibliografa, o consulte en Youtube: Karnaugh, o pase por alto este punto y estudie los diagramas de los operadores y analice las tablas correspondientes que dibujamos. All encontrar el problema resuelto en forma fcil de comprender. 4) Para comprobar resultados, se hace el diagrama de los operadores y la correspondiente tabla de combinaciones. Primer problema: Cmo montar un XOR El XOR lo podemos construr con AND y un OR, por eso su signo tiene un + metido en crculo (suma y multiplicacin). 1) El primer paso es hacer la tabla de combinaciones de un XOR. 2) Al frente de cada lnea colocar el producto correspondiente que luego aparecer en la frmula: 3) Para resolver la tabla sume todos los productos que dan 1 o sea las lneas 2) y 3): F = aB + Ab3A) O si prefiere, sume productos que dieron 0, o sea la lnea primera y ltima: f = ab+ AB

4) Dibujar la tabla y el diagrama de los operadores de la frmula: F = aB + Ab

F

Como ejercicio dibujemos ahora la tabla y el diagrama de los operadores de la de la segunda frmula: f = ab + AB

Pgina 43 de 74

f Como puede ver, la segunda solucin da como resultado los complementos de la anterior. Es un NOT XOR. Para que esta solucin coincida con la anterior, basta aplicar un NOT al resultado final. Segundo problema: Un contador binario Sean A B C tres bombillos que se encienden y apagan, y D E los dos bit de un contador binario que nos dice cuntos bombillos hay encendidos. 1) Para resolver el problema, primero hacemos una tabla de tres entradas (ABC) que nos indique todas las combinaciones posibles en el encendido de los bombillos y de dos salidas o funciones que representen la respuesta del contador D E. Si no hay ningn bombillo encendido, el contador marcar el cero binario (002), si hay un bombillo marcar 012, si hay dos marcar 102 ,y si hay tres marcar 112, o sea el tres binario. Estos nmeros aparecen debajo la columna D E. La tabla nos muestra todas las posibilidades desde cuando no hay ningn bombillo encendido 1) 000 hasta cuando estn los 3 encendidos 8) 111. En total 8 posibilidades. 2) El segundo paso consiste en hallar las frmulas. Como hay dos salidas, D y E primero resolvemos la D y luego la salida E. ABC 1) 0 0 0 2) 0 0 1 3) 0 1 0 4) 0 1 1 5) 1 0 0 6) 1 0 1 7) 1 1 0 8) 1 1 1 D E 0 0 0 1 0 1 1 0 0 1 1 0 1 0 1 1 Como podemos ver la D se puede resolver por la suma de las frmulas de las filas 4, 6, 7,8 que dan 1. La funcin total es: D = aBC + AbC + ABc+ ABCSi usted prefiere resuelve por las filas que dan cero (1,2,3,5): d= abc+ abC + aBc+ Abc

De idntica manera la funcin para resolver la E y la e son las siguientes: E = abC + aBc + Abc+ ABCe= abc + aBC + AbC + ABc

3) Las funciones anteriores se pueden simplificar por un proceso que se llama mapas de Karnaugh. El tema de cmo simplificar una funcin con los mapas de Karnaugh lo puede encontrar en Youtube, o pasarlo por alto. En seguida le damos algunos link que le ensearn a utilizar la tcnica de los mapas de Karnaugh para simplificar funciones booleanas:http://www.youtube.com/watch?v=afzcRErfIGI http://www.youtube.com/watch?v=QJOnkyXJBc4&feature=related http://www.youtube.com/watch?v=QJOnkyXJBc4&feature=related Pgina 44 de 74

Para aprender a simplificar las funciones tiene que ver varios videos o como puede darse cuenta por uno de los links, hay programas que le simplifican la funcin. No es necesario que aprenda la tcnica de simplificar funciones para el propsito que nos hemos propuesto de entender cmo es que funciona un computador y cmo resuelve los problemas que se le proponen. Las dos funciones que en seguida le presentamos, equivalen a las de arriba y han sido simplificadas. Como sera largo explicar cmo se simplificaron, mtodos que puede hallar en youtube si busca la palabra Karnaugh, nos contentaremos con evaluar su veracidad, lo que haremos en el punto 4. D=AB+BC+AC

E=abC+aBc+Abc+ABC

4) El ltimo paso es hacer las tablas con todos los valores posibles y dibujar las correspondientes puertas AND y OR. En la pgina siguiente le indicamos paso por paso cmo dibujar las puertas. All se puede dar cuenta, el proceso sencillo a seguir para construr un chip que una vez acabado, es difcil de entender. Mientras lo vamos dibujando, lo entendemos, pero una vez dibujado, es imposible interpretarlo. Como la tabla completa de valores es demasiado larga, vamos a conformarnos con verificar la veracidad del resultado en las mismas frmulas. Supongamos que los bombillos A y B estn encendidos, o sea que A=B=1, y C est apagado: C=0. DE tiene que dar el dos binario, o sea que la D=1 y la E=0 para que el resultado sea 102. Para verificar, coloquemos estos valores en las frmulas: D = AB + BC + AC = 1x1 + 1x0 + 1x0 = 1 E = abC + aBc+ Abc+ ABC = 0x0x0 + 0x1x1 + 1x0x1 + 1x1x0 = 0 Si va a verificar el problema por las frmulas complementarias, tiene que tener en cuenta que los resultados dan un NOT, o sea dan d y e. Si lemos DE como dos (10 2), en los complementarios d e nos dar: 012, que es el complemento o sea un bombillo apagado.

Pgina 45 de 74

Pgina 46 de 74

Tercer problema: Selector para el cdigo BCD Dijimos que el sistema hexadecimal no es compatible con el decimal. Un cdigo hexadecimal consta de cuatro entradas A B C D. Todo lo que entre por A se considera que es un 8, por B se considera que es un 4, por C un 2 y por D una unidad. As 1011 equivale a 8+0+2+1=11, nmero dgito hexadecimal que se representa con una B. En decimal no existe un dgito para el 11 y este nmero hay que anularlo para que no entre en clculos hechos en cdigo BCD. Todos los nmeros que suban de 9 deben anularse. Otra forma del cdigo Hexadecimal es darle a A B C D estos valores 6, 3, 1, 1. O sea todo lo que entre por A se considera un 6, lo que entre por B equivale a un 3 y lo que entre por C y D son unidades. As el nmero 1011 que antes anulamos, dara: 6+0+1+1=8, tendra entrada en la nueva tabla. Hagamos dos tablas para ambos sistemas, y un detector que anule las entradas no permitidas:

La F1 la G1 nos dicen cundo el nmero pertenece al sistema. La F2 o la G2 lanzarn una seal cuando detecten que el nmero no pertenece al sistema. El detector de error lo haremos con la G2. Si por ejemplo G2=1001 o sea 6+0+0+1=7, lo dejar pasar. Pero si detecta G2=1010 que da tambin 7=(6+0+1+0) no lo dejar pasar pues no puede haber dos cdigos que tengan el mismo valor. G2 = abCd+ aBCd+ AbCd+ ABcD + ABCd+ ABCD Despus de simplificar por los mtodos de Karnaugh, la frmula y el esquema de puertas es el siguiente:Pgina 47 de 74

Como ejercicio puede hacer una tabla para el BCD 5 2 1 1, en que todo lo que entre por A valga 5, lo que entre por B valga 2 y lo que entre por C y D valga 1. Puede hacer otra tabla BCD 2 4 2 1. Respuesta: En la tabla BCD 5 2 1 1, los nmeros del 0 al 9 seran: el 0000, 0001, 0011, 0101, 0111, 1000, 1001, 1011, 1101, 1111. Los dems deben anularse por repetidos. Cuarto problema: Un interruptor selector, multiplxer Sean dos entradas A y B y un interruptor C que consideramos tambin como una entrada que puede ser la seal de un reloj. Y una salida F. Cuando el pulso del reloj sea 1, F tendr el valor de B, y cuando el F pulso del reloj sea 0, F ten- A B C 0 F = aBC + Abc + ABc + ABC dr el valor de A. Hagamos 0 0 0 001 0 f = abc + abC + aBc + AbC la tabla de combinaciones 010 0 de lo propuesto: 011 1 100 1 101 0 110 1 111 1

La simplificacin de la frmula y el correspondiente esquema: Adicionamos el esquema del multiplxer

En seguida presentamos varios multiplxer en serie donde la entrada del reloj aparece por un lado, operando como un interruptor. El funcionamiento es el siguiente: Cada que el reloj est con seal uno, saldrnPgina 48 de 74

las seales B1 B2 B3 B4. Cuando la seal sea cero, saldrn las seales guardadas en A1 A2 A3 A4. Recordemos que los pulsos del reloj son importantsimos para el funcionamiento del computador y como decamos al inicio van medidos en Megahertzios.

Un multiplxer puede tener dos, tres o ms interruptores. Si tiene dos interruptores puede manejar 22=4 entradas, y si 3 puede manejar 23=8. Quinto problema: Un decodificador Tenemos cuatro entradas que van a dar los nmeros del 0 al 9. Con un selector de error, slo se va a permitir las diez primeras entradas y se anula el resto de entradas posibles que son en total 24 = 16. Dibujemos la tabla con las 16 posibilidades y coloquemos al frente las 10 posibles as: Si se enciende la salida cero, diremos que es el cero. Si la dos, diremos que es el dos. Y as la salida 4=4... y si se enciende la salida 9 es aviso de que ha entrado el nmero 9. He aqu la tabla de las combinaciones posibles de las cuatro entradas que dan como resultado el BCD (cdigo decimal binario). DCBA S0 0000 1 0001 0 0010 0 0011 0 0100 0 0101 0 0110 0 0111 0 1000 0 1001 0 1010 0 1011 0 1100 0 1101 0 1110 0 1111 0 S1 S2 S3 S4 S5 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 S6 S7 S8 S9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Pgina 49 de 74

Al desarrollar la frmula sale una estructura que podemos simplificar con el siguiente esquema de un decodificador de tres entradas y ocho salidas: S0 = abc S1 = abC A S2 = aB c S3 = aBC B S4 = Abc S5 = AbC C S6 = ABc S7 = ABC Un contador hasta tres Para ver el proceso cmo se elabora un decodificador vamos a hacer un contador de 2 entradas y 4 salidas que slo puede contar hasta tres. Cuando est en cero (00), se encender S0, cuando indique uno (01) se encendeA B A B S0 S1 S2 S 3 r S1, cuando indique 2 se encender S2, y 00 1 0 0 0 S0 = ab el tres se indicar al 01 0 1 0 0 S1 = aB encender la salida S3. 10 0 0 1 0 S2 = Ab He aqu la tabla de combinaciones que 11 0 0 0 1 S3 = AB plantea lo propuesto: S1 S2 S0

S3

El dibujo de la derecha muestra el esquema de operadores lgicos que resuelve el problema y junto a la tabla, el smbolo con que se representa un decodificador de 2 entradas y 4 salidas.

Pgina 50 de 74

Problema sexto: Una ROM

Ya hemos elaborado un decodificador de 4. Ahora le vamos a decir que cuando salga el uno encienda una luz, cuando salga el dos, encienda dos, y cuando salga tres, encienda tres, y cuando salga el cuatro, encienda cuatro luces. Para ello necesitamos una ROM. Una ROM es una Plantilla ya elaborada segn determinado patrn para lograr un efecto. Sean S0, S1, S3, S4, las cuatro salidas del decodificador que acabamos de elaborar y que podemos manejar a travs de las dos entradas A y B. Si A=B=0, se activar S0. Si A=B=1, se activar S3. O sea que se puede activar cualquiera de las cuatro S. Sean K L M N cuatro alambres cargados de electricidad con sus respectivos bombillos pero sin salida a tierra. Si la salida S que est activada manipula un interruptor, se encendern los bombillos que estn conectados a ese hilo. En el dibujo est activada S1 y se han encendido los bombillos K L. En la realidad una ROM a cambio de interruptores, tiene diodos, y a cambio de bombillos tiene bits.

Problema sptimo: Un basculador (flip flop) Si analiza los dos esquemas el primer inversor es inestable porque si le entra una seal 1, sale una seal cero retro-alimentadora inversa (A a) y anula el 1 que entr. En cambio al combinar los dos inversores, segundo esquema, (A a A) la seal retro-alimentadora es del mismo signo de la que entr, y por lo tanto reafirma y hace estable y firme la seal que entr. Esta tcnica se llama feedback (retroalimentacin) y es muy empleada para guardar en memoria informacin estable.

Pgina 51 de 74

S R 1) 2) 3) 4) 0 0 1 1 0 1 0 1

q Q 1 1 0 0 0 0 1 0

Analice esquema donde las entradas son S y R. S (Set) es la entrada principal, o sea la informacin que queremos guardar por largo rato. R (Reset) es la llave que utilizaremos para borrar y dejar la anterior memoria en 0. Si observa la tabla de valores, mientras R es 0, se reafirma el valor entr S=Q. Pero si R=1, borra el contenido que tena S. Esto es lo que se llama un basculador cuya tabla, el chip de operadores , y el esquema o smbolo, mostramos. Cmo escribir en un basculador. Seal de reloj

Para escribir una memoria estable como la del basculador, se aaden dos puertas AND a las entradas del basculador, y se conecta un pulso de reloj. Al basculador slo podr entrar seal, si se enva una seal 1 por cualquiera de sus dos entradas, que coincida y sea simultnea con la seal 1 del reloj.

Basculadores en serie Es muy importante que entienda cmo funciona una serie de basculadores, pues este mecanismo es el alma de todo computador. Conectemos cuatro basculadores en serie tal como lo muestra la figura.

Todo lo que entre por la S, ser reproducido en Q1. Si S=1, entonces Q1=1= S1. Si S=0, entonces Q1=0=S1. En general toda informacin que se vaya a archivar, entrar por S y queda establecida en Q1 y en S1.que es la entrada al siguiente basculador. Si se quiere borrar la seal S1, metemos un 1 por R. Q1 bascula y pasa a ser cero. O sea que siempre que R=1, Q1=0. Si conectamos la serie de basculadores unos con otros de manera que cada salidaPgina 52 de 74

Q este conectada con la entrada S del siguiente y conectamos todas las R a un solo alambre, cualquier informacin que entre por S, ser repetida y archivada en todas las Q y en todas las S. Los basculadores reproducirn el mismo valor, o sea que Si S = 1 entonces Q1 = S1 = Q2 = S2 = Q3 = S4 = Q4 = S4 = 1. Si entra una seal positiva por R pasar al alambre donde estn conectadas las R, y todas las salidas S se convertirn en cero, o sea, son borradas o reseteadas. Recuerde que es necesario el pulso positivo de un reloj, para que entre la seal S. Si colocamos un NOT en los basculadores 2 y 4 que inviertan el pulso del reloj, la informacin no puede pasar a esos basculadores pues el pulso 1,que da la orden de entrada al basculador 1 y 3, en el mismo instante, aparece como 0 en los basculadores 2 y 4 debido al NOT. O sea el 1 y 3 se abren y en el mismo instante se cierran el 2 y el 4. Cuando los pulsos del reloj sean negativos, suceder lo contrario, el 1 y 3 estn cerrados y en ese instante se abren el 2 y 4 permitiendo la entrada a ellos de lo que, en el pulso anterior qued almacenado en el 1 y 3. .Esto nos permite trasladar la seal paso por paso de basculador a basculador, sin que quede la misma informacin en todos a la vez. Para entender lo que decimos, lancemos una seal por el alambre de reseteo para que todos los basculadores queden en cero. Ahora junto al impulso positivo del reloj, m