fundamentos de microprocesadores

417

Click here to load reader

Upload: jonathan-francisco-martinez-vazquez

Post on 20-Jun-2015

1.061 views

Category:

Education


25 download

DESCRIPTION

Fundamentos de Microprocesadores Roger tokheim - segunda edicion en español

TRANSCRIPT

  • 1. 4,. ....... 1 .. 1 .. ;.=~-.. 1. , ~~.flf lr ~-~-FUNDAMENTOS!.~ 1l. . DE LOS ,1 MICROPROCESADORES '.~ Segunda edicin.. .' 1 .,.. J,". l', 1II1I. . iI,. I ,,Ik~ It J /'.,.r .!''". . ."".'~ ..... ~ ,..~ - .. ~.- '2m m ; S

2. FUNDAMENTOSDE LOSMICROPROCESADORESSegunda edicinROGER lo TOKHEIMHenry Sibley High SchoolMendota Heights, MinnesotaTraduccl6nJUAN MANUEL SANCHEZDepartamento de Informtica y AutomticaFacultad de Ciencias FsicasUniversidad Complutense de MadridRevisin tcnicaANTONIO VAQUEROCatedrtico de InformticaFacultad de Ciencias FsicasUniversidad Complutense de Madrid8756 OMcGRAW-HlllMXICO. BUENOS AIRES CARACAS GUATEMALALISBOA MADRID NUEVA YORK PANAM SAN JUAN .. SANT AF DE BOGOT. SANTIAGO SAO PAUlO ,AUCKLAND HAMBURGO LONDRES MILN MONTREALNUEVA DELHI PARs SAN FRANCISCO SINGAPUR STo LOUIS SIDNEY TOKIO TORONTO 3. .1tiPROLOGO'"El estudiante de electrnica o especialista del futuro necesita conocer los microprocesadores ysistemas basados en microprocesador. Este conocimiento incluye tanto el hardware como elsoftware de las microcomputadoras. Los microprocesadores son la base de un nuevo tipo dedispositivos inteligentes; se encuentran en diversos productos: desde los juguetes de los nifios a losautomviles, desde las microcomputadoras a los electrodomsticos, desde los robots y maquinariaindustrial al equipo de entretenimiento casero. Gracias a estos dispositivos programables,denominados microprocesadores, se espera que el desarrollo de mquinas inteligentes se acelereen el futuro.La segunda edicin de Fundamentos de los Microprocesadores de la serie Schaum proporcionaal lector los aspectos bsicos, que normalmente se cubren en un primer curso de microprocesadores.La filosofia de la serie Schaum, de concentrarse en los problemas caractersticos quesurgen cuando se estudia cualquier materia, est soportada en este libro gracias a la inclusin deunos 1.100 problemas, suplementarios y resueltos, sobre microprocesadores y microcomputadoras.Las soluciones completas vienen con la mayora de los problemas de este libro.La segunda edicin del libro contiene la mayor parte de los temas que hicieron que la primeraedicin tuviese un gran xito. En la segunda edicin se han afiadido algunas cosas que reflejannuevas tendencias prcticas, cambios tecnolgicos y sugerencias de estudiantes e instructores. Sehan afiadido dos captulos que cubren los microprocesadores de 8 bits 6502/65C02 en sus aspectoshardware y de programacin. Por demanda popular, se ha afiadido un captulo donde seexaminan algunos microprocesadores seleccionados de 16 y 32 bits. Entre stos se encuentran loslntel de 16 y 32 bits: 8086, 8088, 80186, 80188, 80286 Y 80386; adems de los microprocesadoresMotorola 68000, 68008, 68010, 68012, 68020 Y 68030. Finalmente, se examinan los microprocesadoresde 16 bits 65802 y 65816 de Western Design Center.Los temas tratados en este libro se seleccionaron cuidadosamente para que coincipiesen conlos cursos impartidos en los niveles de escuela superior, profesional, colegio de cbm~idad ycolegio de principiantes. Se analizaron muchos de los libros de texto ms utilizados a nivelprofesional y manuales de laboratorio sobre microprocesadores y microcomputadoras. Los temasy problemas incluidos en este libro de la serie Schaum son similares a los encontrados en loslibros analizados. Los segmentos de los programas listados en este libro han sido cuidadosamentecomprobados para que funcionen en microcomputadoras de bajo costo. Algunos de estos entrenadoresestn disponibles en lntel Corporation, Heath/Zenith y Sistemas Lab-Volt.La segunda edicin de Fundamentos de los Microprocesadores de Schaum comienza con unacorta introduccin a las computadoras, a continuacin se presenta informacin general sobrenmeros, cdigos y aritmtica de computadoras junto con una breve revisin de los dispositivosdigitales bsicos. Los sistemas comerciales basados en microprocesador son muy complejos, estaes la razn por la que se utiliza un microprocesador genrico simplificado para introducir losfundamentos de las microcomputadoras, el microprocesador, la programacin del microprocesadory las interfaces con el microprocesador. El conjunto de registros y el repertorio de instrucci~nes del microprocesador genrico son subconjuntos de los de la MPU 8080/8085. A continuacin,se cubren con cierto detalle tres de los microprocesadores de 8 bits ms populares: lasunidades microprocesadoras descritas son la Intel 8080/8085, la Motorola 6800 y la 6502/65C02: 4. vi PROlOOO J dedicndose dos captulos a cada microprocesador. El captulo final examina brevemente otros~ microprocesadores ms complejos de 16 y 32 bits de Intel, Motorola y Westem Design Center.Extendemos nuestro agradecimiento a John Aliano de McGraw-Hill por su asistencia y paciencia:aJ estudiante de ingeniera Darrel K10tzbach por sus buenos efectos de investigacin,correccin meticulosa de las pruebas y comprobacin cuidadosa de la mayora de los programasde este libro. Agradezco de manera especial a mi familia, Caroline, Dan y Marshall su ayuda,paciencia y estmulo.ROOER L. TOKHEIM./,f'/i 1l.f..~ ""' 5. , CONTENIDOPROLOGO ............................................................................ . v --~;c 1.2. Organizacin de la computadora ........................................ .1.3. Organizacin de la microcomputadora ................................... . 3lA. Operacin de la microcomputadora ..................................... . 5(Captulo l. INTRODUCaON A LAS COMPUTADORAS .......................... .1.1. Introduccin .......................................................... .Captulo 2. NUMEROS, CODIGOS DE COMPUTADORA y ARITMETICA . . . . . . . . f32.1. Nmeros binarios ...................................................... 132.2. Nmeros hexadecimales ......................... '............... '. . . . . . . . . 162.3. Nmeros BCD ......................................................... 202.4. Aritmtica binaria ...................................................... 212.5. Notacin en complemento a 2 ........................................... 242.6. Aritmtica en complemento a 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282.7. Agrupaciones de bits ......................... ~ . . . . . . . . . . . . . . . . . . . . . . . . . . 312.8. Cdigos alfanumricos .................................................. 35Captulo 3. DISPOSITIVOS DIGITALES BASICOS ................................ . 393.1. Puertas lgicas ........................................................ . 393.2. Combinacin de puertas lgicas ...... : .................................. . 433.3. Rip-flops y cerrojos .................................................... . 463.4. Codificadores, decodificadores y visualizadores de siete segmentos .......... . 52 ~3.5. Buffers y dispositivos de tres estados ..................................... . 55 ~3.6. Memorias semiconductoras ............................................. . 57':1 3.7. Utilizacin de las RAM y ROM ......................................... . 60~ ":'j; "' " -:lptulo 4. FUNDAMENTOS DE LAS MICROCOMPUT ADORAS ................ .4.1. Introduccin .......................................................... .4.2. Arquitectura simplificada de una microcomputadora ...................... .4.3. Organizacin simplificada de la memoria ................................ .l.JS' 6. viii CONTENIOO4.4. Repertorio de instrucciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 794.5. Organizacin simplificada de la CPU........ ..... ... . ................. ... 844.6. Operacin de la microcomputadora ...................................... 89Captulo 5. EL MICROPROCESADOR .............................................. . 100S.l. Caractersticas comunes de los microprocesadores ......................... . 1005.2. Descripciones de la hoja de datos ........................................ . 103-/ 5.3. Funciones y diagramas de las patillas .................................... 110 ;/ 5.4. Arquitectura del microprocesador ....................................... . 1145.5. Utilizacin del registro de direcciones/datos .............................. .5.6. Utilizacin del puntero de pila ......................................... ..:~Captulo 6. PROGRAMAOON DEL MICROPROCESADOR ......... , ............. . 1366.1. Lenguajes mquina y ensamblador ..................................... . 1366.2. Repertorio simplificado de instrucciones ................................ . 1406.3. Repertorio de instrucciones: operaciones aritmticas ...................... . 1426.4. Repertorio de instrucciones: operaciones lgicas ......................... . 1526.5. Repertorio de instrucciones: operaciones de transferencia de datos ......... . 158l 6.6. Repertorio de instrucciones: operaciones de bifurcacin ................... . 16S6.7. Repertorio de instrucciones: operaciones de llamada y vuelta de subrutina .. . 1696.8. Repertorio de instrucciones: operaciones miscelneas ..................... . 1746.9. Escritura de un programa ............................................. . 176 LJ}6.10. Modos de direccionamiento ........................................... . 1836.11. Bifurcacin en programas ............................................. 1886.12. Programas cclicos .................................................... . 1926.13. Utilizacin de subrutinas ............................................. .. 196Captulo 7. INTERFACES CON EL MICROPROCES~DOR ........................ . 213 {J7.1.7.2.IntroduccinInterfaz con l.......................................................... .a ROM ............................. '" ...................21321S /]7.3. Interfaz con la RAM ................................................... . 2197.4. Interfaces bsicas de entrada/salida ..................................... .. 2247.5. Interfaz con puertos prcticos de entrada/salida ........................... 2307.6. Sincronizacin de transferencias de entrada/salida de datos mediante interrupciones................................................................ . 2337.7. Decodificacin de direcciones ........................................... . 237 ,'ig)Captulo 8. EL MICROPROCESADOR INTEL 8080/8085 .......................... . 2478. l. Introduccin ......................................................... . 2478.2. Funciones y diagrama de patillas del 8085 .............................. . 2488.3. Arquitectura del 8085 ................................................. . 2538.4. Modos de direccionamiento o 261" 7. CONTEl'I100 ix 8.5. Repertorio de instrucciones del 8080/8085 ............. """" ' ................... ,. .. ~ .. 2668.6. Instrucciones de transferencia de datos del 8080/8085 .................... . 2728.7. Instrucciones aritmticas del 8080/8085 ................................. . 2798.8. Instrucciones lgicas del 8080/8085 .................................... . 2898.9. Instrucciones de bifurcacin del 8080/8085 .............................. . 2958.10. Instrucciones de pila, E/S y control de mquina del 8080/8085 ............ . 302CqtulD 9. PROGRAMACION DEL MICROPROCESADOR 8080/8085 ............ 3189.1. Introduccin........................................................... 3189.2. Programas lineales. . . . .. .. . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . ... . . . . . . . . :3249.3. Programas cclicos. . . . . .. ..... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . .. . . . 329904. Programas matemticos ........................ : .................... ,. . 335Captulo 10.Captulo 11.EL MICROPROCESADOR MOTOROLA 6800 . .... . . . ..... .. ..... .. . ..10.1. Introduccin .......................................................10.2. Funciones y diagrama de patillas del 6800 ............................. .10.3. Arquitectura del 6800 ............................................... .lOA. Modos de direccionamiento .......................................... .10.5.10.7. Instrucciones del puntero de pila y registro ndice del 6800 .............. .10.8. Instrucciones de bifurcacin y salto del 6800 ........................... .10.9. Instrucciones del registro de cdigos de condicin del 6800 .............. .PROGRAMAOON DEL MICROPROCESADOR 6800 ................ .11.1. Introduccin ........................................................ .11.2. Interpretacin de un programa sencillo del 6800 ........................ .11.3. Utilizacin del registro ndice ........................................ ..1104. Un programa del 6800 que utiliza una tabla de bsqueda (Iook-up) ....... .345345347Repertorio de instrucciones del 6800 .................................. .10.6. Instrucciones de memoria y acumulador del 6800 ............. : ...... .Hi~383388390397405/405 1-/412 /'"~418 . ./422Captulo 12. EL MICROPROCESADOR 6502 ........................................ 43212.1. Introduccin ....................................................... . 43212.2. Funciones y diagrama de patillas del 6502 ............................ 43412.3. Arquitectura del 6502 .............................................. . 4381204. Modos sencillos de direccionamiento ................................. . 451. 12.5. Ms modos de direccionamiento del 6502 ..~........................ 456 .--~12.6. Repertorio de instrucciones del 6502 ................................. . 46412.7. Instrucciones de transferencia de datos del 6502 ........... .' ........... . 47212.8. Instrucciones de flujo de control del 6502 ............................. . 47512.9. Instrucciones aritmticas del 6502 ................................... . 47812.10. Instrucciones lgicas y de manipulacin de bits del 6502 : ....... : ...... . 48312.11. Instrucciones de interrupcin y de control del sistema 6502 .......... 4884" 2 (f'1 F ~ ~.~ ~ --"_L.--~A 8. x CONTENIDOCaptulo 13. PROGRAMAOON DEL MICROPROCESADOR 6S02 ......... ,'....... 49413.1. Introduccin.... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49413.2. Interpretacin de un programa de suma BCD ........................... 498 /'13.3. Multiplicacin binaria................................................ 50413.4. Decodificacin hexadecimal a siete segmentos........................... 511 (JI)13.5. Utilizacin de subrutinas.. . . . .. . . .. . .. .. . . .. . . . .. .. . . .. . . .. . . .. .. . . . .. 5181 /'/ 14.2. Intel8086 y 8088 ................................................... 53114.3. Inte180186, 80188 y 80286 ........................................... 535 114.4. lntel 80386 ..... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;5:38~ . J"',14.5. Motorola 68000, 68008, 68010 Y 68012 ................................ . J-.)14.6. Motorola 68020 y 68030 ............................................. .14.7. Westem Design Center 65802 y 65816 ................................. 549Captrllo U. A..GUNOS MICROPROCESADORES DE 16 Y 32 BITS. . . . . . . . . . . . . . . 53014.1. Introduccin......................................................... 530INDICE ................................................................................. 555,(, 9. 'Captulo 1INTRODUCCION . , A LAS COMPUTADORAS1.1. INTRODUCCIONLas computadoras se han venido utilizando de forma general desde los afios 1950. En un princi541pio las computadoras digitales eran mquinas grandes y caras, utilizadas por los gobiernos y,grandes empresas. El tamao y forma de la computadora digital ha cambiado gracias a un nuevodispositivo denominado microprocesador. El microprocesador es un el (circuito integrado) quetiene la mayora de las capacidades de procesamiento de las grandes computadoras. El microprocesadores un pequeo, pero extremadamente complejo, dispositivo LSI (gran escala de integracin)programable. Las computadoras utilizan un programa almacenado. Las pequeas computaldoras, llamadas microcomputadoras. tambin utilizan el concepto de programa almacenado. Una (microcomputadora contiene un microprocesador y como mnimo algn tipo de memoria semi(conductora.Las grandes y caras computadoras habitualmente son unidades de propsito general. Normallmente se programan muchas veces y se utilizan para realizar muchas tareas. Las computadoras "dedicadas se emplean cada vez ms, debido al uso de los pequeos y baratos microprocesadores.Una computadora dedicada se programa para realizar slo unas pocas tareas, como ocurre en losjuguetes, termostatos, automviles y herramientas.1.2. ORGANIZACION DE LA COMPUTADORALas secciones tradicionales de una computadora digital se muestran en la Figura 1.1. El sistemabsico de la computadora consta de cinco unidades: la unidad de entrada, las unidades aritmticay de control (contenidas en la CPU, o unidad central de tratamiento), la unidad de memoria y launidad de salida. Esta organizacin de las partes funcionales se denomina arquitectura de lacomputadora.Las unidades fisicas representadas por bloques de la Figura 1.1 constituyen el hardware. Paraque sea til, la memoria de programa debe decir a la CPU qu tiene que hacer. La preparacin dela lista de instrucciones se denomina programacin. La lista de instrucciones constituye un programaque se almacena de forma temporal o permanente en la memoria de programa. Estosprogramas manipulan informaciones denominadas datos. Software es un trmino general utilizadopara denominar a todos los programas; si el software se almacena permanentemente en lamemoria programa, a veces, se denomina firmware.En resumen, la computadora funciona de la siguiente forma: los programas y datos sonintroducidos en la CPU y transferidos a sus respectivas posiciones de memoria. La cpe lee laI'r r 10. 2~-;f""'----- .,...,._~~.FUNDAMENTOS DE LOS MICROPROCESADORES/IEntrada J CPU I J Salida ~ Control + aritmtica II W Memonadeprograma I Memonade datos1lJ MemoriaFigura 1.1. Organizacin general de una computadora.primera instruccin de la memoria de programa y la ejecuta. Las instrucciones pueden ser tansimples como SUMAR (ADD) dos nmeros, TRANSFERIR (MOVE) un dato, INTRODUCIRo SACAR (INPUT u OUTPUT) un dato, o BIFURCAR (JUMP) a una parte diferente delprograma. Cuando finalizan las manipulaciones de los datos, los resultados son transferidos a lasalida de la computadora. De nuevo, la mayora de las acciones de la CPU son debidas a lasinstrucciones almacenadas en el programa de memoria.PROBLEMAS RESUELTOS1.1. Listar las cinco secciones funcionales de una computadora digital.Solucin:Las cinco secciones funcionales de una computadora se muestran en la Figura 1.1 Y son lasunidades de entrada, control, aritmtica, memoria y salida. CPU es un trmino general que incluyeel control y la aritmtica, as como algunos otros elementos.1.2. Las unidades electrnicas reales como, por ejemplo, las representadas por las cajas de laFigura 1.1 se denominan ___ , mientras que los programas que instruyen a la computadorase denominan software.Solucin:Las unidades electrnicas fisicas reales de una computadora se denominan hardware.1.3. Una persona llamada programador escribe una lista de ___ , que se denominaprograma.Solucin:Un programador escribe una lista de instrucciones que se denomina programa.1.4. Listar dos tipos de informacin que se introduzca y almacene en la memoria de unacomputadora.Solucin:El programa y los datos deben ser introducidos en la computadora y almacenados en memoria. 11. INTRODUCCION A LAS COMPUTADORAS 31.S. La mayora de las acciones de la CPU en una computadora son debidas a las instruccionesalmacenadas en la memoria de __.Solucin:La mayoria de las acciones de la CPU son debidas a las instrucciones almacenadas en la memoriade programa. Los datos que se van a procesar se almacenan en la memoria de datos. En algunas'jcomputadoras, no hay diferencia fisica entre la memoria de programa y la de datos.1.3. ORGANIZACION DE LA MICROCOMPUTADORAUn sistema microcomputador es una computadora digitaL Se utiliza el prefijo micro debido a supequeo tamao y bajo costo. El microprocesador generalmente forma la seccin de la CPU deun sistema microcomputador, cuya organizacin est esbozada en la Figura 1.2. La microcomputadoracontiene las cinco secciones bsicas de una computadora: (1) la unidad de entrada. (2) lasunidades de control y (3) aritmtica contenidas en el microprocesador, (4) la unidad de memoriay (5) la unidad de salida.El microprocesador controla todas las unidades del sistema utilizando las lneas de control queaparecen a la izquierda de la Figura 1.2. El bus de direcciones que aparece junto a las lneas decontrol (16 conductores en paralelo) selecciona una cierta posicin de memoria, puerto de entradao puerto de salida. El bus de datos (ocho conductores paralelos), a la derecha de la Figura 1.2,es un camino de doble direccin que se utiliza para introducir y sacar datos de la unidad microprocesadora.Es importante observar que la unidad microprocesadora (MPU) puede enviar, orecibir, datos de la memoria utilizando el bus de datos.Si un programa se va a almacenar de forma permanente, habitualmente se coloca en undispositivo de memoria denominado memoria de slo lectura (ROM). La ROM normalmente esuna pastilla de memoria, programada permanentemente, en forma de Cl. La memoria temporaldonde se almacenan los datos, generalmente es un dispositivo integrado denominado memoria delectura/escritura (RWM). En la prctica, la memoria de lectura/escritura se denomina memoriade acceso aleatorio. o RAM. Los programas de usuario de la microcomputadora, que son denaturaleza temporal, tambin estn almacenados en la seccin RAM de la memoria junto a losdatos. Las secciones RAM y ROM de memoria aparecen separadas en la Figura 1.2 debido a que,generalmente, son circuitos integrados separados.El sistema de la Figura 1.2 representa la organizacin general de una microcomputadora. Lamayora de ellas, como mnimo, deben tener estas caractersticas. Por claridad, es costumbreomitir en los diagramas de bloque fuentes de alimentacin, relojes y algunas lneas de realimentacinde la unidad microprocesadora.PROBLEMAS RESUELTOS1.6. La CPU de una microcomputadora es un CI denominado ___ . Solucin:La CPU de una microcomputadora. generalmente. es un CI denominado microprocesador. Enalgunos diseos se necesitan varios CI para realizar el trabajo de la CPU. 12. 4 FUNDAMENTOS DE LOS MICROPROCESADORESDel mundoexterior --------~:--~Entrada(s)MicroprocesadorLIneas de control CPUControl + aritmticaBus de datos(8 lneas)Memoria de programa(ROM)Bus de direcciones(16 lneas) --+--.Memoria de datos(RAM)Salida(s)Al mundo~.....;:------....... exteriorFigura 1.2. Organizacin tipics de una microcomputadora.1.7. Acudir a la Figura 1.2. Qu bloque de esta microcomputadora puede considerarse launidad de conlronSolucin:El microprocesador (tambin identificado como CPU en la Figura 1.2) controla las dems unidadesde la microcomputadora.1.8. Listar tres tipos de interconexiones en el sistema microcomputador de la Figura 1.2.Solucin:Las interconexiones entre los CI de la microcomputadora de la Figura 1.2 son: el bus de direcciones,el bus de datos y las lneas de control. En realidad hay ms lneas entre los el que las mostradasen la Figura 1.2.= 13. INTRODUCCION A LAS COMPUTADORAS 51.9. El bus de direcciones de la Figura 1.2 es un camino de una direccin para la informacincodificada, mientras que el bus de ___ es un camino de dos direcciones.SoluciD:El bus de datos es un camino de dos direcciones para la informacin del sistema microcomputadorde la Figura 1.2.1.10. Los programas permanentes, normalmente se almacenan en dispositivos integrados denominadosmemorias de ___ -___ .( Solucin:Los programas permanentes comnmente se almacenan en dispositivos integrados denominados memorias de slo lectura (ROM).1.11. Las siglas ROM qu tipo de memoria de computadora referencian?Solucin:ROM significa memoria de slo lectura.1.12. Los datos y los programas temporales de la microcomputadora se almacenan en memoriasdenominadas __(RAM, ROM).Solucin:Los datos y programas temporales se almacenan en memorias denominadas RAM.1.13. El almacenamiento de datos en la RAM de una microcomputadora es ___ (permanente,temporal).Solucin:El almacenamiento de la RAM es temporal.1.14. El lugar por donde la informacin entra o sale de una computadora se denomina __(puerto, zcalo).Solucin: La informacin entra o sale de la computadora a travs de sitios denominados puertos .1.4. OPERACION DE LA MICROCOMPUTADORAEn la Figura 1.3 se muestra un ejemplo de como opera una microcomputadora. En el ejemplo seilustra el siguiente procedimiento:l. Pulsar la tecla A del teclado.2. Almacenar la letra A en memoria. J ,3.Imprimir la letra A en la pantalla del monitor de tubo de rayos catdicos (eRn. El procedimiento de entrada-almacenamiento-salida esbozado en la Figura 1.3 es una operacincomn de un sistema microcomputador. El hardware electrnico utilizado en un sistemacomo el de la Figura 1.3 es bastante complicado. Sin embargo, la transferencia de datos en elsistema ayudar a explicar el uso de las diferentes unidades de la microcomputadora. 14. r6 FUNDAMENTOS DE LOS MICROPROCESADORESTecladoMicrocomputadoraEntradaCPUAlmacenar A 2 ...--+-_ MemoriaSalida Monitor CRTr-----'A I'I _____.JIImprimir AFigura 1 .3. Operacin tfpica de la microcomputadora.Un diagrama ms detallado en la Figura lA ayudar a comprender el procedimiento comnde entrada-almacenamiento-salida de la microcomputadora. Primero, observar cuidadosamentelos contenidos de la memoria de programa en la Figura 1.4. Observar que las instrucciones ya sehan cargado en las seis primeras posiciones de memoria. De la Figura lA, se desprende que lasinstrucciones que estn en la memoria de programa son:1. INTRODUCIR (INPUT) el dato del puerto de entrada 1.2. ALMACENAR (STORE) el dato del puerto 1 en la posicin 200 de la memoria dedatos.3. SACAR (OUTPUT) el dato al puerto de salida 10.Observar que solamente hay tres instrucciones en el programa anterior, aunque puede parecerque hay seis en la memoria de programa de la Figura 1.4. La razn para pensar esto, es que lasinstrucciones se descomponen habitualmente en varias partes. La primera parte de la instruccin1 consiste en INTRODUCIR (INPUT) un dato. La segunda parte indica de dnde provieneel dato (del puerto 1). La primera parte de accin de la instruccin se denomina operacin y lasegunda parte operando. Operacin y operando estn localizados en posiciones separadas dememoria en la memoria de programa de la Figura 1.4. Para la primera instruccin de la Figura1.4, la posicin 100 de memoria de programa contiene la operacin de INTRODUCIR(INPUT) mientras que la posicin 101 contiene el operando (puerto 1) desde donde se introducirla informacin.En el microprocesador de la Figura 1.4, se han identificado dos nuevas secciones denominadasregistros. Estos registros especiales son el registro acumulador y el de instruccin. 15. ... de direccionesy lneasdecontrol .A del tedadoINTRODUCCION A LAS COMPUTADORAS 71 ~./ ./Entrada~ puerto 1././f I Acumulador JMPU.~ti I Registro de instruccin ~ aMicroprocesador~ ./ ,..,.."DireccinContenidoj.1 100 INTRODUCIR dato 2 3 01 del puerto 1 0{'--0 102 ALMACENAR dato 78 103 en posicin dememoria 200 9I~ 104 SACAR dato 13 14 105 al puerto 10 0J106 ./Memoria de programa./Direccin Contenido .taMPU apuntar a la posicin de direccin ___en la memoria de programa para lasiguiente instruccin.Solucin:Despus de ejecutar la instruccin SACAR dato al puerto 10)) en la Figura 1.4, la MPU apuntara la posicin de direccin 106 en la memoria del programa para la siguiente instruccin. Lao 18. I 10 FUNDAMENTOS DE LOS MICROPROCESADORESposicin de memoria del programa 106 est en blanco en la Figura 1.4, as que la accin de la M'JII_ser impredecible. Probablemente habr que colocar aqu una instruccin de ESPERAR (w.!.. , ALTO (HAL T) para que pueda predecirse la operacin de la computadora.1.19. Acudir a la Figura 1.4. Una instruccin de la microcomputadora como, por eje1'f1t'lilo.ALMACENAR dato en la posicin de memoria 20h~ producir como resultado la t~_ .5ferenciade un dato de la MPU a la posicin 201 de la memoria de ___ .I .!. Solucin:Una instruccin como, por ejemplo, ALMACENAR dato en la posicin de memoria 201_producir como resultado la transferencia de un dato de la MPU a la posicin 201 de la memoria dedatos.J-', 1.20. Acudir a la Figura 1.4. Una instruccin de la microcomputadora como, por ejemplo.,ALMACENAR dato en la posicin de memoria 202 dar como resultado la transferenciadel dato del ___ (acumulador, registro de instruccin) de la MPU a la posicin dememoria ___de la RAM.Soluci6n:Una instruccin como, por ejemplo, ALMACENAR dato en la posicin de memoria 202 darcomo resultado la transferencia del dato del acumulador de la MPU a la posicin de memoria 202de la RAM. Este dato estar entonces en la posicin de memoria 202 de la RAM y en el acumuladorde la MPU. El contenido del acumulador no se destruye cuando se almacena el dato.1.21. El proceso de ___ (lectura, escritura) tiene lugar cuando se copia un dato de una posicinde memoria.Solucin:El proceso de lectura tiene lugar cuando se copia un dato de una posicin de memoria.1.22. Colocar datos en una posicin de memoria es un proceso denominado ___ (lectura,escritura) en memoria.Solucin:Colocar datos en una posicin de memoria es un proceso denominado escritura en memoria.1.23. Para cada instruccin en la memoria de programa, la MPU va a travs de una secuencia___ -___-___ .Solucin:Para cada instruccin en la memoria de programa, la MPU va a travs de una secuencia debusca-decodifica-ejecuta. Algunos libros llaman a esta secuencia el ciclo de localiza-lee-interpretaejecuta,1.24. Acudir a la Figura 1.4. Despus del paso 16, cuando se completa la instruccin SACARdato al puerto !O, qu dato contiene el acumulador de la MPU?Solucin:El acumulador contendr el cdigo de A. La lectura de datos, de un registro o posicin dememoria. solamente copia la informacin que est all y no destruye el dato. 19. mlerprelamINTRODUCCION A LAS COMPUTADORAS II1.25. Acudir a la 'Figura 1.4. Despus del paso 1'6, existirn todaVa las itistrucciones en lasposiciones de memoria 100 a lOS?Solucin:S. Las instrucciones de lectura no destruyen los contenidos de esas posiciones de memoria.PROBLEMAS SUPLEMENTARIOSlA En electrnica, las siglas el significan ____.Res. circuito integrado.1.27. En electrnica, las siglas LSI significan ______.Res. gran escala de integracin .1.lI. En informtica, las siglas epu significan ______Res. unidad central de tratamiento.l.lt. Un CI LSI que tiene la mayora de las capcidades de la CPU de una computadora se denomina__.Res. microprocesador.1.lI. En microcomputadoras, las letras MPU significan ___.Res. unidad microprocesadora.1.31. Las microcomputadoras que realizan solamente una o dos tareas se dicen que son __(de propsitogeneral, dedicadas).Res. dedicadas.1.32. Una organizacin clsica de computadora qu cinco unidades importantes tiene?Res. entrada, control, aritmtica, memoria, salida.I.D. Una lista de instrucciones de computadora se considera __(hardware, software) .Res. software.1.34. Las informaciones que se manipulan en una computadora se denominan __(datos, informacionesnumricas). ,Res. datos.1.35. Una persona que escribe listas de instrucciones para una computadora se denomina un __._.Res. programador.1..36. El almacenamiento permanente de un programa en una microcomputadora, probablemente, puedehacerse en una __(RAM, ROM).Res. ROM.11.37. La __(RAM, ROM) es un el muy utilizado en las microcomputadoras como memoria delectura/escritura.Res. RAM..... I 20. 12 FUNDAMENTOS DE LOS MICROPROCESADORES1.38. Acudir a la Figura 1.2. Las instrucciones almacenadas en la memoria de programa sern __(permanentes,temporales).Res. permanentes (almacenadas en ROM).1.39. Acudir a la Figura 1.4. Despus de que se completa el paso 16, la MPU intentar el procedimientode __(decodificacin, bsqueda, ejecucin).Res. bsqueda.1.40. Acudir a la Figura 1.4. La MPU accede a una posicin especfica de memoria al utilizar el busde __.Res. direcciones. 1.41. Acudir a la Figura 1.4. La informacin codificada es transferida desde el acumulador de la MPU auna posicin de memoria, en la memoria de datos, utilizando el bus de __. Res. datos.1.42. Si la MPU busca y decodifica una instruccin como ALMACENAR datos en la posicin de memoria205, el dato provendr del __.Res. acumulador (en la MPU).1.43. Una microcomputadora contiene como mnimo una unidad de entrada, una unidad de salida, unaMPU y una __de programas y datos.Res. memoria.1.44. Una memoria temporal de lectura/escritura se designa por las tres siguientes letras RWN0 __.Res. RAM... 21. Captulo 2NUMEROS, CODIGOSDE COMPUTADORA Y ARITMETICA2.1. NUMEROS BINARIOSLas computadoras digitales utilizan nmeros binarios. El sistema de numeracin binario, o debase 2, utiliza solamente los dgitos O y 1; los dgitos binarios se llaman bits. En los circuitoselectrnicos de las computadoras el bit O habitualmente se repre~enta por una tensin BAJA,mientras que el bit 1 corresponde a una tensin ALTA.Las personas estn acostumbradas a comprender el sistema de numeracin decimal, o debase JO, que tiene 10 dgitos (0-9). Este sistema tambin tiene la caracterstica de valor porposicin; por ejemplo, la Figura 2.1 a muestra que el nmero decimal 1327 es igual a 1000 mstres 100 ms dos 10 ms siete 1 (1000 + 300 + 20 + 7 == 1327).El sistema de numeracin binario tambin tiene la caracterstica de valor por posicin. Elvalor decimal de las cuatro primeras posiciones binarias se muestra en la Figura 2.1 b. El nmerobinario 1001 (se pronuncia uno, cero, cero, uno) se convierte a su equivalente decimal de 9. El bitdel 1 del nmero binario de la Figura 2.1 b se denomina bit menos significativo (LSB), mientrasque el bit del 8 se denomina bit ms significativo (MSB).Los equivalentes binarios de los nmeros decimales entre O y 15 se muestran en la Figura 2.1c.Las personas que trabajan con computadoras memorizan como mnimo estos nmeros binarios.Convertir el nmero binario 10110110 (se pronuncia uno, cero, uno, uno, cero, uno, uno,cero) a su equivalente decimal. El procedimiento se muestra en la Figura 2.2a. Por cada bit I delnmero binario se escribe debajo el valor de la posicin decimal y despus se suman los decimales(128 + 32 + 16 + 4 + 2 = 182), dando 182. Los pequenos subndices de la Figura 2.2b se utilizanpara anotar la base (a veces denominada raz) del nmero. El nmero 101101102 es por tanto unnmero binario, o en base 2 yel nmero 18210 es un nmero decimal o en base 10.Convertir el nmero decimal 155 a binario. La Figura 2.3 muestra un procedimiento parahacer esta conversin. El nmero decimal 155 se divide primero por 2, dando un cociente de 77 yun resto de 1; el resto se convierte en el bit menos significativo (LSB) del nmero binario y setransfiere a esta posicin en la Figura 2.3. El cociente (77) se transfiere como muestra la flecha yse convierte en el siguiente dividendo. Los cocientes se dividen repetidamente por 2 hasta que elcociente se hace O con un resto de l. La Figura 2.3 muestra este procedimiento. La lnea inferiormuestra el resultado de la conversin: 15510 = 1001 101 lz..' . 1371.~.~ l 22. 14 FUNDAMENTOS DE LOS MICROPROCESADORESPotencias de 10Valor de posicin1031000102lOO10110lOO1Decimal 1 3 2 7Decimal 1000 + 300 + 20 + 7 1327(a) Valores de la posicin en un numero decimalPotencias de 2 23 22 21 2Valor de posicin 8 4 2 lMSB-....." ~lSBBinario 1 o o 1Decimal 8 + O + O + 1 9(b) Valores de la posicin en un nmero binarioDecimal Binario Decimal Binario10 I 8 4 2 I 10 1 8 4 2 1O O 8 1 O O O1 1 9 1 O O 12 1 O 1 O 1 O 1 O" 3 1 1 1 1 1 O I 14 1 O O 1 2 1 I O O5 1 O I 1 3 1 1 O I6 1 1 O I 4 1 1 1 O7 1 1 1 1 5 1 I 1 1(e) Equivalentes decimales y binariosFigura 2.1.Potencias de 2 27 26 25 24 23 22 21 2Valor de posicin 128 64 32 16 8 4 2 1BinarioDecimal1128O+(a)1 1 O32 + 16 +Conversin de binario a decimal14 +12O182(b)101101102 - 18210Los ndices designan la base del nmeroFigura 2.2.t ti' h 23. 155,10 +2=77 resto de 1 I77 + 2 - 38 resto de 1r--'38 ... 2 - 19 resto de O,! 19 + 2 ~ 9 resto de 1~9+2= 4 resto de 1~4+2- 2restodeO,2 r--'. .. 2- I resto deOI[ ... 2= Oresto de INUMEROS, CODIGOS DE COMPUTADORA Y ARITMETlCA 15LSBO O OFigura 2.3.PROBLEMAS RESUELTOS2.1. La mayora de las personas comprenden el sistema de numeracin decimal, mientras quelas computadoras digitales utilizan el sistema de numeracin de base 2, o ___ .Solucin:Las computadoras digitales utilizan el sistema de numeracin de base 2, o binario, y contienesolamente los dgitos O y l.2.2. El tnnino bit significa ____cuando se trata de nmeros binarios.Solucin:Bit significa dgito binario.13. El nmero 10010 es un nmero en base ___ .Solucio:El nmero 10010 es un nmero en base 10, como indica el subndice 10 al final del nmero.2.4. Escribir en base 2 el nmero uno, uno, cero, cero utilizando un subndice.Solucin:11002,2.5. Las letras MSB significan _____cuando se trata con nmeros binarios.Solucin:Las letras MSB significan bit ms significativo. Si el nmero es 10002, elles el MSB.2.6. De memoria, convertir los siguientes nmeros binarios en sus equivalentes decimales:(a) 0001 (b) 0101 (e) 1000 (d) 1011 (e) 1111 (f) 0111 24. 16 FUNDAMENTOS DE LOS MICROPROCESADORESSolucin:Acudir a ia Figura 2.1e. Estos nmeros binarios han de ser memorizados. Los equivalentesdecimales para los nmeros binarios son los siguientes:(a) 0001 2"" 110 (e) 10002= 810 (e) 1111 2= 15 10(b) 0101 2 (d) 1011 2 = 1110 (/) 0111 2 =510 =7102.7. Convertir los siguientes nmeros binarios en sus equivalentes decimales:(a) 10000000 (e) 00110011 (e) OOOI1111(b) 00010000 (d) 01100100 (f) 11111111Solucin:Siguiendo el procedimiento mostrado en la Figura 2.1 b, los equivalentes decimales de los nmerosbinarios son los que se indican:(a) 100000002 = 128 10 (e) 00110011 2= 5110 (e) 0001111l2-311O(b) 000100002 = (d) 01l001002= 10010 (/) 1I111111 1610 2 = 255 102.8. Convertir los siguientes nmeros decimales en sus equivalentes binarios:(a) 39 (b) 48Solucin:Seguir el procedimiento mostrado en la Figura 2.3. Los equivalentes binarios de los nmerosdecimales son los siguientes:(a) 3910 ..... 2 .. 19 resto de 1 (LSB)19 -+- 2 - 9 resto de l9 -+- 2 - 4 resto de 14 .... 2 - 2 resto de O2 ..... 2 - 1 resto de Ol ..... 2 - O resto de 1 (MSB)39 10 '" 100 111 2(b) 48 10 "", 2 '" 24 resto de O (LSB)24 ..... 2 '" 12 resto de O12 -+- 2 - 6 resto de O6 ... 2 '" 3 resto de O3-+-2= l resto de 1l .... 2 = O resto de l (MSB)48 10 = 11000022.2. NUMEROS HEXADECIMALESUna posicin de la memoria de una microcomputadora puede contener el nmero binario; 10011110. Esta larga cadena de ceros y unos es dificil de recordar y teclear. El nmero 100111102puede convertirse en un nmero decimal. Una vez convertido ste es el nmero 15810' Esteproceso de conversin es demasiado largo. La mayora de los sistemas de microcomputadorasutilizan la notacin hexadecimal para simplificar la tarea de recordar y teclear nmeros binarioscomo por ejemplo 100 III 10.El sistema de numeracin hexadecimal, o de base 16, utiliza los 16 smbolos del Oal 9, A, B,C, D, E Y F. Los equivalentes binarios, hexadecimales y decimales se muestran en la Figura2A. 25. NUMEROS, CODIGOS DE COMPUTADORA yDecimal HexadecimalBinario8 4 2 IO O O O O O1 I O O O 12 2 O O 1 O3 3 O O 1 14 4 O 1 O O5 5 O 1 O I6 6 O I 1 O7 7 O 1 1 18 8 1 O O O9 9 1 O O 110 A 1 O 1 O11 B 1 O 1 l12 e 1 1 O O13 D 1 1 O 114 E I I 1 O15 F I I 1 1Figura 2.4. Contar en decimal, hexadecimal y binario.Observar en la Figura 2.4 que cada smbolo hexadecimal representa una nica combinacinde 4 bits. El nmero binario 10011110 puede entonces ser representado como 9E en hexadecimal.Esto es, la parte 1001 del nmero binario es igual a 9, de acuerdo con la Figura 2.4, y la parte1110 del nmero binario es igual a E en hexadecimal. Por tanto 100111102 es igual a 9EwRecordar que el subndice indica la base del nmero.Convertir el nmero binario 111010 en hexadecimal (hex). Comenzar por el LSB y dividir elnmero binario en grupos de 4 bits cada uno, como indica la Figura 2.5a. Entonces sustituir cadagrupo de 4 bits por su dgito hex equivalente. El 10102 es igual a A en hex (ver Fig. 2.4). Eloo11 2es igual a 3 en hex. Por tanto 1110102 es igual a 3A16'Convertir el nmero hexadecimal 7F a su equivalente binario. La Figura 2.5b muestra que cada dgito hex es sustituido por su equivalente binario de 4 bits. En este ejemplo, el binario 0111es sustituido por el hex 7 y 11112 sustituye a F16' Por tanto 7FI6 es igual a 11111112'Grupo de 4 bits Grupo de 4 bits Hexadecimal 7 F ---. ---.Binario 0011 1010 ~ ~+ + ---.Hexadecimal 3 A Binario 0111 1111(a) Conversin de binario a hexadecimal (b) Conversin de hexadecimal a binarioFigura 2.5.ARITMETICA 17, "" . 26. r18 FUNDAMENTOS DE LOS MICROPROCESADORESLa notacin hexadecimal es muy utilizada para representar nmeros binarios. Las personasque utilizan la notacin hexadecimal deben memorizar la tabla mostrada en la Figura 2.4.Convertir el nmero hexadecimal 2C6E a su equivalente decimal. El procedimiento se mues!tra en la Figura 2.6a. Los valores de posicin para los cuatro primeros dgitos decimales son 4096,256, 16 y 1. El nmero hexadecimal contiene catorce (EI6) 1, seis 16, doce (CI6) 256 y dos 4096.Cada valor de posicin se multiplica y los productos se suman para obtener 11.374,0'Convertir el nmero decimal 15.797 a su equivalente hexadecimal. El procedimiento se muestraen la Figura 2.6b. La primera lnea indica 15.79710 dividido por 16, dando un cociente de987 10 con un resto de 510, El resto se convierte entonces a su equivalente hexadecimal. Por tanto510 es igual a 516, El resto hexadecimal (5 16) se convierte en el dgito menos significativo (LSD) delnmero hexadecimal. El primer cociente (987) es el dividendo en la segunda lnea y se divide por16. El segundo cociente es 61 con un resto de 11,0' o B hexadecimal. La lnea 3 muestra 61dividido por 16, dando un cociente de 3 con un resto de 13 10, o D'6' La cuarta lnea de laFigura 2.6b muestra el dividendo (3) dividido por 16, dando un cociente de O con un resto de 310' 316, Cuando el cociente se hace O, corno en la lnea 4, se termina el clculo. El 316 es el dgitoms significativo (MSD). El procedimiento mostrado en la Figura 2.6b convierte el nmero decimal15.797 en su equivalente hex de 3DB516.Potencias de 16 163 162 16' 160Valor de posicin 4096 256 16 1Hexadecimal 2 e 6 El l l l4096 256 16x2 xl2 x6 x14Decimal 8192 + 3072 + 96 + 14 11.37410fa) Conversin de hexadecimal a decimalLSD ,987+ 16-61 resto de 11 10 =816 .. !61 + 16 - 3 resto de 13 10 - DI6 ..3 + 16 = O resto de 310 - 31615.79710 + 16 - 987 resto de 510 = 5'615.79710 = 3 D 8(b) Conversin de decimal a hexadecimalFigura 2.6. 27. NUMEROS, COOJGOS DE COMPUTADORA Y ARITMETICA 19PROBLEMAS RESUELTOS2.9. La notacin hexadecimal es muy utilizada, para trabajar con las microcomputadoras,como mtodo abreviado de representar nmeros ___ (binarios, decimales).Solucin:La notacin hexadecimal es muy utilizada para representar nmeros binarios.2.10. El sistema de numeracin hexadecimal a veces se denomina sistema de base ___ .Solucin:El sistema de numeracin hexadecimal a veces se denomina sistema de base 16 debido al uso de16 smbolos nicos.2.11. Convertir los siguientes nmeros hexadecimales a sus equivalentes binarios:(a) C (e) F (e) lA(b) 6 (d) E2 if) 3DSolucin:Utilizando la tabla de la Figura 2.4, seguir el procedimiento de la Figura 2.5b. Los equivalentesbinarios para los nmeros hexadecimales son los siguientes:(a) CI6 = 11002 (e) Fi 1111 2 (e) IA I6 000110102(b) 6 1 =01102 (d) E2 1 = 111000102 (f) 3016 -00111101 22.12. Convertir los siguientes nmeros binarios en sus equivalentes hexadecimales:(a) 1001 (e) 1101 (e) 10000000(b) 1100 (d) 1IIl if) 01111l1OSolucin:Utilizando la tabla de la Figura 2.4, seguir el procedimiento de la Figura 2.5a. Los equivalenteshexadecimales para los nmeros binarios son los siguientes:(a) 1001 2 =916 (e) 1101 2 =016 (e) 100000002 -8016(b) 1l002-CI6 (d) 11112=F16 (f) OJl111102 -7E162.13. Convertir los siguientes nmeros hexadecimales en sus equivalentes decimales:(a) 7E (b) DB (e) 12A3 (d) 34CFSolucin:Utilizando la tabla de la Figura 2.4, seguir el procedimiento de la Figura 2.6a. Los equivalentesdecimales a los nmeros hexadecimales son los siguientes:(a) 7EI6 - (16 x 7) + (1 x 14) = 12610(b) OB I6 ={l6x 13)+(1 x 11)-21910(e) 12A3 16 =(4096 x 1)+(256x2)+(l6x 10)+(1 X 3)=4771 10(d) 34CF'6=(4096 x 3)+(256x4)+(16 x 12)+(1 x 15) 13.519'02.14. 48.373 10=--16'Solucin:Utilizando la tabla de la Figura 2.4, seguir el procedimiento de la Figura 2.6b.48.373 10 + 16 - 3023 resto de 5 516 (LSO) 10 =3023 +- 16 = 188 resto de 15 10 FI188+16 llrestodeI2o=C'611+16- Orestodell lO =B'6(MSO)48.373 10 - BCF5 16 28. 20 FUNDAMENTOS DE LOS MICROPROCESADORES2.3. NUMEROS BCDLos nmeros binarios puros se representan en notacin hexadecimal para hacer ms fcil laconversin. Sin embargo, la conversin binario a decimal es bastante dificil. En calculadoras,juegos e instrumentos digitales, donde son frecuentes las entradas y salidas del usuario en decimal,se utiliza un cdigo especial para representar los nmeros decimales. Este cdigo se denominaBCD (decimal-codificada-binario). Las equivalencias entre decimal y BCD se muestran en latabla de la Figura 2.7a. Tcnicamente, esta tabla detalla el cdigo BCD 8421. La parte del nombre8421 da el valor de la posicin a los 4 bits del cdigo BCD. Tambin se utilizan otros cdigosBCD, como por ejemplo el cdigo BCD 5421 Y el cdigo de exceso 3.DecimalBCD8 4 2 1O O O O O1 O O O 12 O O 1 O3 O O I 14 O 1 O OS O 1 O 16 O 1 1 O7 O 1 1 18 1 O O O9 1 O O IDecimal 3 6 9 I! ! ! !BCD 0011 0110 1001 0001(b) Conversin de decimal a BCDBCD 1000 0000 0111 0010! J, ! J,Decimal 8 O 7 2(e) Conversin de BCD a decimal(a) Cdigo BCD 8421! ., .~ , Figura 2.7.Convertir el nmero decimal 3691 a su equivalente BCD 8421. El procedimiento se muestraen la Figura 2.7b. Cada dgito decimal se traduce directamente a su equivalente BCD de 4 bits.Este ejemplo muestra que 3691 10 es igual a 0011 0110 1001 0001 BCD'Convertir el nmero BCD 1000 0000 0111 0010 a su equivalente decimal. El procedimientoS detalla en la Figura 2.7c. Cada grupo de 4 bits se traduce directamente a su equivalente decimal.Este ejemplo muestra que 1000 0000 0111 OOIOBCD es igual a 8072 ,10. Los microprocesadores suman los nmeros binarios puros. Sin embargo, muchos microprocesadorestienen instrucciones especiales para cambiar el resultado de las sumas a notacin BCD. Elnmero BCD se interpreta fcilmente entonces como nmero decimal utilizando los sencillosprocedimientos mostrados en las Figuras 2.7 by c. 29. NUMEROS, CODlGOS DE COMPUTADORA Y ARTTMETlCA 21PROBLEMAS RESUELTOS 2.15. Las letras BCD significan ______.Solucin:Las letras BCD significan decimal codificado binario.2.16. La notacin BCD ms comn es el cdigo __(5421, 8421).Solucin:La notacin BCD ms comn es el cdigo BCD 8421.2.17. Convertir los siguientes nmeros decimales en sus equivalentes 8421 BCD:(a) 3Q (e) 40 (e) 82(b) 65 (d) 17 (f) 99Solucin:Seguir el procedimiento de la Figura 2.7 b. Los equivalentes BCD para los nmeros decimales sonlos siguientes:(a) 3910 =0011 100locD (e) 401O -0100OOOOOCD (e) 82 10 - 100000lOocD(b) 65 10 = 01 1001OIoco (d) 17 10 = 0001 Ollloco (j) 99 10 = 1001 100l oco2.18. Convertir los siguientes nmeros BCD 8421 en sus equivalentes decimales:(a) 10000000 (e) 10010010 (e) 01000011(b) 00000001 (d) 01110110 (f) 01010101Solucin:Seguir el procedimiento mostrado en la Figura 2.7c. Los equivalentes decimales para los nmerosBCD son los siguientes:(a) 1000 Oooooco = 80 (e) 1001 OOIOocD- 9210 (e) OIOOOOlI oco 1043 10(b) 00000001 BCD - 110 (d) 01l10IIOBCO=7610 (j) OlOIOlOl ocD 55 102.4. ARITMETICA BINARIASumar, restar o multiplicar nmeros binarios se realiza de forma similar a la aritmtica decimal.La mayora de los microprocesadores tienen instrucciones para sumar y restar nmeros binarios.Los microprocesadores ms avanzados tienen incluso instrucciones para multiplicar y dividir, porejemplo, los 8086, 8088, 80286, 80386 Y 68000.Las sencillas reglas para la suma binaria se muestran en la Figura 2.8a. Las dos primeras reglasde la parte izquierda son obvias. La tercera regla 1 + 1== 10 muestra que el bit ms significativo esarrastrado a la siguiente posicin de orden superior. La cuarta regla muestra que en binarioI + I + 1 = 11. Aqu los sumandos y el arrastre son todos unos. El resultado es una suma de 1 conun arrastre de l.Sumar los nmeros binarios 00111 OlI Y 00 1 O 1 O I O. Este problema se ilustra en la Figura 2.8b.Comprobar este procedimiento. Los equivalentes decimales de los nmeros binarios se muestran,por conveniencia, a la derecha. La suma de 00111011 y 00101010 se muestra enJa Figura 2.8b yes 01100101 2,I 30. 22 FUNDAMENTOS DE LOS MICROPROCESADORES__ ArraSlrede Arrastresf' la s~g~.iente 11 I I II Primer sumando O i I po$lClon Primer sumando 00 1 1 1011 59Segundo sumando +0 +~ 1]+ ~ 1+1 menos Segundo sumando + 00 1 O!O 10 + 42Suma O 1/ 10 I .TI significativa SumaArraslre a Arrastrela siguiente (b) Problema de suma binariaposicin mssignificativa(a) Reglas para la suma binariaFigura 2.8.Las reglas para la resta binaria se muestran en la Figura 2.9a. Las tres primeras reglas soniguales que en la resta decimal. La ltima regla requiere un prstamo de la siguiente posicin mssignificativa (la posicin del 2). Con el prstamo, el minuendo se convierte en el binario 10, comoel sustraendo es l la diferencia es l.o 110(10 o 1f 1Wf jOi _1 0 7 I1fMinuendo O 1 1 O 0,0,0101 ~5Sustraendo -O -1 -O -1 -00111001 -57Diferencia O O 1 1 000111002 "2810(a) Reglas para la sustraccin binaria (b) Problema de sustraccin binariaFigura 2.9.Restar el nmero binario 00 lII00 I de O I O 1 O 101. Este problema ejemplo se detalla en laFigura 2.9b. Las columnas del 4, 2 Y l del problema de resta binaria son bastante sencillas deseguir utilizando las tres primeras reglas de la Figura 2.9a. La columna del 8 muestra un lrestndose de un O. Se toma prestado un l de la columna del 16 y se resta l de 101, obtenindoseuna diferencia de 1 de acuerdo con la cuarta regla de la Figura 2.9a. Despus del prstamo, lacolumna del 16 muestra un 1 restado del nuevo minuendo O. Segn la regla 4, hay que tomarprestado un 1 de la siguiente posicin ms significativa (la posicin del 32). El minuendo de laposicin 32 es O, por lo que entonces hay que tomar prestado elide la posicin 64. La posicindel 32 toma un prstamo de la posicin del 64. Finalmente, la posicin del 16 puede tomarprestado de la posicin del 32. El minuendo de la posicin del 16 es entonces 102, Yel sustraendoes 1 dando una diferencia de l. La posicin del 32 ahora muestra 1 - I dando una diferencia de O.La posicin del 64 muestra O - O dando una diferencia de O. La posicin del 128 muestra O - Odando tambin una diferencia de O. En resumen, el problema ejemplo de la Figura 2.9b muestraque el binario 00 111 00 1 restado de O 1 O 1 O 101 2 da una diferencia de 000 11 1002, El problematambin se muestra en forma decimal a la derecha.Las reglas para la multiplicacin binaria se muestran en la Figura 2. lOa. Las dos primerasreglas no necesitan explicacin. El multiplicador es I en las dos ltimas reglas. Cuando el multiplicadores 1 en la multiplicacin binaria, el multiplicando se copia como producto. Cuando elmultiplicador es O, el producto siempre es O. 31. NUMEROS. CODlGOS DE COMPUTADORA Y ARITMETICA 23Multiplicando O o Multiplicando 1101 13Multiplicador xO xO xl xl Multiplicador x 101 x5Producto O O O 1 Primer producto parcial 1101 6510Segundo producto parcial 0000Tercer producto parcial 1101Producto final 1000001 2(a) Reglas para la multiplicacin binaria (b) Problema de multiplicacin binariaFigura 2.10.Multiplicar los nmeros binarios 1101 y tOl. Este problema ejemplo se muestra en la Figura2.1 Ob. Como en la multiplicacin decimal, el multiplicando se multiplica primero por el dgitomenos significativo (en este caso el bit del 1). El bit del 1 del multiplicador es 1, por tanto elmultiplicando se copia como primer producto parcial. El bit del 2 del multiplicador es un O, portanto el segundo producto parcial es 0000. Observar que ste se desplaza una posicin a laizquierda. El bit del 4 del multiplicador es 1, por tanto el multiplicando se copia como tercerproducto parcial. Observar que 110 1 se copia despus del segundo desplazamiento a la izquierda.Los productos parciales primero, segundo y tercero se suman, dando el producto final de10000012' En resumen, la Figura 2.lOb muestra que lI01 2 x 101 2 = 1000001 2 o que13 lo x 510 = 65 10,PROBLEMAS RESUELTOS2.19. Resolver los siguientes problemas de suma binaria:(a) 1010 (b) 1101 (e) 01011011 (d) 00111111+0101 +0101 +00001111 +00011111Solucin:Acudir a la Figura 2.8. Las sumas binarias de los problemas son las siguientes:(a) 1111 (b) 10010 (e) 01101010 (ti) 010111102.20. Resolver los siguientes problemas de resta binaria:(a) 1110 (b) 1010 (e) 01100110 (ti)-1000 -O 10 I -000110 10Solucin:Acudir a la Figura 2.9. Las diferencias binarias de los problemas son las siguientes:(a) 0110 (b) 0101 (e) 01001100 (ti) 001110012.21. En un problema de multiplicacin el nmero de arriba se denomina ___ mientras queel de abajo se denomina multiplicador y el resultado se denomina ___ .Solucin:En un problema de multiplicacin el nmero de aniba se llama multiplicando, mientras que elde abajo se llama multiplicador y el resultado se llama producto. 32. 24 FUNDAMENTOS DE LOS MICROPROCESADORES2.22. Resolver los siguientes problemas de multiplicacin binaria:(a) 1001 (b) 1101 (c) 1111 (d) 1110xll x 1001 xlOl xli 10Solucin:Acudir a la Figura 2.10. Los productos de los problemas son los siguientes:(a) 11011 (b) 1110101 (e) 1001011 (ti) 110001002.5. NOTACION EN COMPLEMENTO A 2Generalmente, en las computadoras se utilizan los nmeros binarios. Sin embargo, a veces seutiliza un cdigo especial denominado notacin en complemento a 2 cuando se necesitan nmeroscon signo. Este sistema simplifica la circuitena de la computadora.Un registro o posicin de almacenamiento en un microprocesador puede ser como el de laFigura 2.11 a. Este registro tiene espacio para datos de 8 bits. Las posiciones de los bits se numerandel 7 al O. Los valores de las posiciones binarias se muestran en la parte inferior del registro.El bit 7 ser el de la posicin del 128, el bit 6 el de la posicin del 64, etc.76543210I I I I I I I I I128 64 32 16 8 4 2 1 Valores binarios de .posicin(a) Etiquetas de las posiciones de memoria de un registro de 8 bits76543210 76543210lo I I I 1 I I I I 11 I I 1 I I I I I-(+) 64 32 16 8 4 1 1 Valores binarios de posicin -( - )---......---'Bit de Bit de NotaCIn ensigno signo complementoa2(b) Los nmeros positivos se identifican por un O en (e) Los nmeros negativos se identifican por un 1 enla posicin del bit del signo del registro la posicin del bit de signo del registroFigura 2.11 .La organizacin ms frecuente de un registro de 8 bits utilizado para almacenar nmeros consigno se muestra en las Figuras 2.11 b y c. El bit 7 en ambos registros es el bit de signo. Este bitdice si el nmero es (+) positivo o (-) negativo. UnO en la posicin del bit de signo significa queel nmero es positivo, mientras que un 1 indica que el nmero es negativo.Si el nmero con signo es positivo como en la Figura 2.11 b, las restantes posiciones de memoria(6-0) contienen un nmero binario de 7 bits. Por ejemplo, si el contenido del registro de laFigura 2.11 b fuese 01000001, significara el decimal +65 (bit de signo positivo + 64 + 1). Si elcontenido del registro de la Figura 2.11 b fuese 01111111, sera +12710 (bit de signo positi 33. NUMEROS. CODlGOS DE COMPUTADORA Y ARITMETICA 25DecimalRepresentacin denmeros con signo+127 0111 1111 Nmeros positivosrepresentados+8 0000 1000 igual que en+7 0000 0111 binario puro+6 0000 0110+5 0000 0101+4 0000 0100+3 0000 0011+2 0000 0010+1 0000 0001+0 0000 0000-1 1111 1111 Nmeros negativos-2 1111 1110 representados en-3 1111 1101 forma de-4 1111 1100 complemento a 2-5 1111 1011-6 llll 1010-7 1111 1001-8 1111 1000-128 1000 0000Figura 2.12. Nmeros decimales con signo y susequivalentes en la notacin de complemento a 2.vo + 64 + 32 + 16 + 8 + 4 + 2 + 1). Este es el mayor nmero positivo que puede ser representadoen este registro de 8 bits.Si el nmero con signo es negativo como en la Figura 2.11 e, el registro contendr la forma encomplemento a 2 de ese nmero. La tabla de la Figura 2.12 muestra la notacin en complementoa 2 para nmeros positivos y negativos. Observar que los nmeros positivos tienen un O en elMSB, mientras que el resto de los nmeros corresponden a un nmero binario. Los nmerosnegativos tienen un I en el MSB. Observar la lnea +0 de la tabla de la Figura 2.12. La notacinen complemento a 2 para +0 es 00000000. En la lnea siguiente, observar que 11111111 es lanotacin en complemento a 2 de -l. Imaginar que el sistema es un odmetro que cuenta haciaatrs a medida que se avanza de 00000000 a 1I1 I 1111.Cul sera la notacin en complemento a 2'de -91 Los pasos para hacer esta conversin seesbozan en la Figura 2. 13a y son los siguientes:Paso 1. Listar el nmero decimal sin signo. Escribir 9 en este ejemplo. 34. 26 FUNDAMENTOS DE LOS MICROPROCESADORESPaso 2. Convertir el nmero decimal a binario. Escribir el nmero binario 00001001 en esteejemplo.Paso 3. Complementar cada bit formando el complemento a l. En este ejemplo escribir11110110 como complemento a l.Paso 4. Sumar I al nmero en complemento a I. En este ejemplo sumar 1 a I I I 10110.Decimal 9 ~ Escribir decimalConvertir a binario l C5:> Binario 00001001l V Complementar cada bitComplemento a I 1111010+ 6? Sumar + Complemento a 2 11110111 =-9(a) Formacin del complemento a 2 de un nmero negativo2 ~ Complemento a I 0000111 + V Sumar + 1Cmplemento a 2 11110000 Escribir complemento a 2l Paso Complementar cada bitBinario 0000000 - 16(b) Clculo del decimal equivalente para un nmero en complemento a 2Figura 2.13.. : ',;El resultado es la notacin en complemento a 2 para el nmero decimal negativo. En esteejemplo, en la Figura 2.13a, -9 es igual a I 1 I 101 1 I en forma de complemento a 2. Observar queel bit de signo AA AO II OA-AEntrada SalidaAND~:[)-YEntradas Salida ADBY NANDSalidasAB-YB AOOIIOIOIAND NANDO IO IO IAB-YI OEntradasI1 Entradas SalidaOR A+B-YAB =DY;=L)o-YA+B-YNOREntradas SalidasB A OR NORO O O 1O J I O1 O I O1 I I OEntradas SalidasB A XOR XNORO O O 1O I I OI O I OI I O IOR exclusiva A (J)B-Y ~j[)-YEntradas SalidaNOR exclusiva A@B-Y D-Figura3.1 . Las siete funciones lgicas comparadas.~----, Entrada~ida"'"-- NOT ?d e b aFigura 3.2. Problema del inversor. 49. DISPOSITIVOS DIGITALES BASICOS 41Entradas Salida11..!fil.!..~d c b a ~,~---'(a) Problema de la puerta ANOEntradas SaJidall.!.Ji1..2....~ Ad c b ,a ~?~-..r-(b) Problema de la puerta OREntradas SaJida~~A 'd c,b a ~?~~~(C) Problema de la puerta XORFigura 3.3.Cul es el nibble de salida despus que 10 1O y 1001 realicen la operacin OR exclusiva(XOR) en la Figura 3.3c. Utilizando la tabla de verdad XOR de la Figura 3.1, se determina que elresultado de la operacin XOR de 10 10 con 100 l es 00 11.Los microprocesadores pueden realizar operaciones lgicas. Normalmente un microprocesadortendr instrucciones NOT (complementacin o negacin), ANO, OR Y XOR. Estas instruc., ciones operan sobre grupos de bits similares a los de las puertas lgicas de las Figuras 3.2 y 3.3.PROBLEMAS RESUELTOS3.1. Citar los nombres de siete funciones lgicas.Solucin:Acudir a la Figura 3.1. Las siete funciones lgicas se denominan NOT (inversor) ANO, NANO,OR, NOR, OR exclusiva (XOR) y NOR exclusiva (XNOR).3.2. Citar los nombres de cuatro funciones lgicas que pueden ser realizadas por las sencillasinstrucciones de un microprocesador.Solucin:Muchos microprocesadores tienen instrucciones que realizan las funciones lgicas NOT, ANO,ORyXOR.3.3. Si un microprocesador realiza la operacin ANO de 1100 con 10 11, el nibble de salidaser __.Solucin:Acudir a la tabla de verdad ANO de la Figura 3.1. La salida resultante de la operacin ANO de1100 con 1011 ser 1000., ,"" 50. 42 FUNDAMENTOS DE LOS MICROPROCESADORES3.4. Si un microprocesador realiza la operacin OR de 00 1 r con 1000, el (mibble de salidaser __.Solucin:Acudir a la tabla de verdad OR de la Fisura 3.1. El resultado de salida de la operacin OR de()() I I con 1000 ser 1011.3.5. Si un microprocesador complementa (NOT) 1001, el nibble)~ de salida ser __.Solucin:Acudir a la tabla de verdad del inversor de la Figura 3.1. La salida resultante de complementar1()() 1 ser 0110.3.6. Si un microprocesador realiza la operacin XOR de 0011 con 0110, el nibble de salidaser __.Solucin:Acudir a la tabla de verdad OR exclusiva de la Figura 3.1. La salida resultante ser OIOl.3.7. Describir las salidas de la puerta NANO de la Figura 3.4.Solucin:Acudir a la tabla de verdad NANO de la Figura 3.1. Los pulsos de salida de la Figura 3.4 sernlos siguientes:pulso a - 1 pulso e - 1pulso b = O pulso d- 1Entradas SalidaOOlll-L-~de b a ~?~~Figura 3.4. Problema del tren de pulsos.3.8. Describir la salida de la puerta XNOR de la Figura 3.5.Entradas Salida~~Ade b a ~?-2..JiIl..!..~ " ,.,Figura 3.5. Problema del tren de pulsos.Solucin:Acudir a la tabla de verdad NOR exclusiva de la Figura 3.1. Los pulsos de salida de la Figura 3.5sern los siguientes:pulso a - O pulso e = 1pulso b - O pulso d- 1 51. __DISPOSITIVOS DIGIT AtES BASICOS 433.2. COMBINACION DE PUERTAS LOGICASLos sistemas digitales estn formados por combinaciones de puertas lgicas, las cuales pueden serdescritas por una tabla de verdad, expresiones booleanas o diagramas de smbolos lgicos.Considerar la tabla de verdad de la Figura 3.6a, que muestra todas las posibles combinacionesde cuatro entradas (D, e, B y A). Observar que slo la combinacin 1010 producir una salida l.Entradas Salida Entradas SalidaD e B A Y D r R A Yo o o o o 1 o o o oo o o 1 o l o '0 1 oo o l o o 1 o 1 o 1o o 1 l o 1 o 1 1 oo 1 o o o I 1 o o oo I o I o I 1 o 1 oo I 1 o o I 1 1 o oo 1 I 1 o 1 I I 1 o(a) Conversin de una tabla de verdad a la expresin booleana equivalenteD.C.B.A .. Y L~ l-----,Aye'-----.... D _______....J SalidaEntradas(b) Conversin de una expresin booleana a su diagrama de smbolos lgicosEntradas Salida(e) Diagrama simplificado de los smbolos lgicos. Figura 3.6. 52. ,i.~~jif"f,l~:~ 7,,:!,l.'c44 ruNDAMENTOS DE LOS MICROPROCESADORESo de nivel ALTO. Una expresin booleana equivalente para esta tabla de verdad se indica en laparte derecha de la tabla de la Figura 3.6a. Las entradas realizan la operacin ANO, formandola expresin booleana D . c B . A = y (se lee D ANO no e ANO B ANO no A igual a lasalida }).A continuacin se obtiene un diagrama de smbolos lgicos para la expresin booleana. Esteprocedimiento est esbozado en la Figura 3.6b. Las entradas A y e deben de complementarseutilizando un inversor. La salida es una puerta ANO de 4 entradas.Una versin simplificada del mismo diagrama lgico se muestra en la Figura 3.6c. En estediagrama los inversores aparecen como burbujas inversoras. Estas burbujas inversoras tambinpueden considerarse como entradas activas en el nivel BAJO (o en BAJA). En otras palabras, paraactivar la puerta ANO de la Figura 3.6c, las entradas A y e deben estar en el nivel BAJO y las B yD en el nivel ALTO. Como las entradas B y D deben de estar en el nivel ALTO para activar lapuerta ANO, se consideran entradas activas en el nivel ALTO (o en ALTA).Entradas Salida Entradas SalidaD e B A Y D e B A Yo o o o o I o o o 1o o o I o 1 o o I oo o 1 o o 1 o I o oo o 1 1 o 1 o 1 I oo I o o o I 1 o o oo 1 o 1 o 1/ 1 o 1 1o 1 1 o o 1 1 1 o oo 1 1 1 o 1 1 1 1 oo(a) Conversin de una tabla de verdad a la expresin booleana equivalente en mintermsEntradasA-.....--i ')o--.:~----.--"'" D.C.'B: B---+--~--~~~--~_4C--~------~~~>O_+_4 SalidasD~++------------~--~~__~(b) Conversin de una expresin booleana en minterms a su diagramade smbolos lgicosFigura 3.7. 53. DISPOSITIVOS DIGITALES BAstCOS 45Considerar la tabla de verdad de la Figura 3.7a. Oos combinaciones de entrada producirn un1 salida ALTA. La expresin booleana de esta tabla de verdad es entoncesD . L . 11 . A + D . e . 11 . A = Y (se lee D ANO no e ANO no B ANO no A OR D ANO e."--~ no B ANO A igual a la salida Y).La expresin booleana es convertida a continuacin a un diagrama de smbolos lgicos. Esteprocedimiento se ilustra en la Figura 3.7b. Observar que este tipo de expresin booleana creapatrones de puertas lgicas ANO-OR, siendo la puerta OR la ms cercana a la salida. El patrn deesta expresin booleana se denomina forma de suma de productos o minterms. Las expresionesbooleanas son generadas a partir de los unos de la columna de salida de la tabla de verdad de laforma mostrada en la Figura 3.7a.PROBLEMAS RESUELTOS..3.9. Acudir a la Figura 3.6c. Las entradas B y D son entradas activas en el nivel ___ (ALTO,BAJO), mientras que las entradas A y e son activas en el nivel __(ALTO, BAJO).Solucin:En la Figura 3.6, las entradas By Dson activas en el nivel ALTO, mientras que A y e son activasen el nivel BAJO. En otras palabras, la puerta ANO de 4 entradas puede ser activada (la salida esten el nivel ALTO) solamente cuando las entradas A y e son BAJAS y las B y D son ALTAS.3.10. Escribir la expresin booleana de la tabla de verdad de la Figura 3.8.Solucin:Hay dos combinaciones de entradas que producen una salida ALTA en la tabla de verdad de laFigura 3.8. A partir de estas combinaciones se desarrolla la expresin booleana en minterms:~jA+DCBA=~ . .,o'EntradasD e B Aoo ooo ooo 1oo 1o1 oo1 oo1 1o1 1o1o1o1o1SalidaYooooooooEntradasD e B A11111I11o oo oo 1o 11 o1 o1 11 1o1o1o1o1SalidaYo1ooooo1Figura 3.8. 54. 46 RlNDAMENTOS DE LOS MICROPROCESADORES3.11. Dibujar el diagrama de smbolos lgicos de un circuito que genere la tabla de verdad de laFigura 3.8.Solucin:La expresin booleana para la tabla de verdad mostrada en la Figura 3.8 esD . e . Ji . A + D . e . B . A = Y. A partir de esta expresin se dibuja el diagrama de smboloslgicos AND-OR mostrado en la Figura 3.9.D.C.S.ASalidayEntradasA--~+;---------r--~B---+~--------~c----~--------~D----~~------_L__~Figura 3.9. Solucin del diagrama lgico.3.3. FLIP~FLOPS y CERROJOSLos circuitos lgicos pueden clasificarse en dos grandes categoras. El primer grupo es el de loscircuitos lgicos combinacionales, que est compuesto de puertas. El segundo grupo es el de loscircuitos lgicos secuenciales, que incluye unos dispositivos denominados flip-flops. Los flipflopsestn interconectados para formar circuitos lgicos secuenciales para almacenamiento dedatos, temporizacin, conteo y secuenciamiento. Los flip-flops tienen una caracterstica de memoriaextremadamente valiosa. Un flip-flop recordar sus entradas an despus de que stas sehayan eliminado. Una puerta lgica sin embargo, no recordar su estado de salida despus quese eliminen las entradas.El smbolo lgico para el flip-flop D (tambin llamado fliPllop de datos) aparece en la Figura3.1 Oa. El smbolo lgico muestra dos entradas etiquetadas D (para datos) y CK (para reloj). Losflip-flops habitualmente tienen salidas complementarias etiquetadas Q y"Q (no Q). La salida Q esla utilizada con ms frecuencia y se considera la salida normal. La salida "Q se denomina la salidacomplementaria o invertida del flip-flop. El > en la entrada CK del smbolo lgico D denota queeste flip-flop transfiere datos de la entrada a la salida en el flanco positivo (t) del pulso de reloj.Los modos de operacin del flip-flop D se muestran en la columna izquierda de la tabla de laFigura 3.lOb. Poner en set el flip-flop significa cargar un 1 en la salida normal (Q). La primeralnea de la tabla de verdad de la Figura 3.1 Oh muestra que colocando un l en la entrada D ypulsando una vez la entrada CK (reloj) la salida Q se pone a l. La segunda lnea muestra lareinicializacin (reset) del flip-flop. Reinicializar significa borrar la salida Q(ponerla a O). Mantener(hold) significa almacenar el dato de salida. Cuando el flip-flop est en el modo de mantenimiento,los cambios en el estado lgico de los datos de entrada no ocasionan ningn cambio en 55. DIsPOsmvos DIGITALES BAStCOS 47Modo deEntradas Salidasoperacin D CK Q QSet 1 fReinicializacinO f O 1MantenimientoX No pulsode relojIgual queantesEntradas SalidasDato Q NormalFFReloj CKQ Complementaria0= BAJOI-ALTOX irrelevantet - transicin BAJA-ALTA del pulso de reloj(a) Smbolo lgico para el Oip-flop D (b) Tabla de verdad para el flip-flop DFigura 3.10.las salidas. La condicin de mantenimiento ilustra la caracterstica de memoria del flip-flop D.Observar que las operaciones de set y reinicializacin se refieren a la salida Q.Considerar el smbolo lgico de la Figura 3.11 a correspondiente a un cerrojo transparente de4 bits. Cada cerrojo (flip-flop) dentro del smbolo es un dispositivo de almacenamiento o memoria.Pensar que el cerrojo de 4 bits contiene 4 flip-flops D con sus entradas de reloj conectadas a laentrada de habilitacin (enable) (E) mostrada en el smbolo de la Figura 3.11 a. De acuerdo con latabla de verdad del cerrojo de la Figura 3.11 b, cuando la entrada de habilitacin (E) est enALTA (a 1), los datos de las entradas D son transferidos a sus respectivas salidas (QO-Q3)' Lapalabra de 4 bits llega en forma paralela (opuesta a la forma serie) y tambin sale en formaparalela. A esto se denomina entrada paralela y salida paralela. El dispositivo de almacenamientocerrojo es una aplicacin realizada con flip-flop.El flip-flop JK es probablemente el ms utilizado en los circuitos lgicos secuenciales, debido asu adaptabilidad. El smbolo lgico de un flip-flop JK se muestra en la Figura 3.12a. Este flip-floptiene dos entradas de datos etiquetadas J y K ms una entrada de reloj (CK) y las salidas Q(normal) y (L) y, por tanto, el sealizador de arrastre (eY) se pone a O. La instruccin de saltar(nemotcnico de JC en este ejemplo) examina el sealizador de arrastre y encuentra que ey= O,lo que hace que la MPU contine con la siguiente instruccin de la secuencia, que es almacenar(A) en la direccin de memoria 2040H. El nmero mayor (OFH) se almacena en la posicin dememoria 2040H mediante la operacin STA. A continuacin la MPU la detiene por la instruccinde alto (HL T). Las tres ltimas instrucciones, sombreadas, del programa en lenguaje ensambladorde la Figura 6.49b no se utilizan en este ejemplo. En el diagrama de flujo que se muestraen la Figura 6.49a, el programa contina linealmente y no bifurca a la derecha.Considerar el mismo programa en lenguaje ensamblador pero con el contenido del acumuladormenor que el contenido del registro L. Un listado de dicho programa se muestra en laFigura 6.49c. En este ejemplo el acumulador se carga con OAH (1010), mientras que el registro Lse carga con el valor mayor de OEH 1410), La instruccin de comparar pone a l el sealizador eyporque (A) < (L); la operacin salta si sealizador de arrastre es 1 (nemotcnico JC en esteejemplo), examina el sealizador ey y comprueba que est a l. La instruccin de salto haceentonces que el contador de programa cambie a la direccin de la posicin de la siguiente instruccin(STORE L en este ejemplo). Observar que la MPU ha saltado dos instrucciones para llegar ala direccin simblica STORE L que aparece listada en la columna etiquetas. La MPU entoncesejecuta las tres ltimas instrucciones, las cuales almacenan el contenido del registro L (elnmero mayor, OEH en este ejemplo) en la posicin de memoria 2040H. En el diagrama de flujode la Figura 6.49a, el programa progresat::. al smbolo de decisin y despus bifurcaba a la derechay segua hasta alcanzar el smbolo alto inferior derecho.Observar de nuevo las tres ltimas instrucciones de la Figura 6.49c. El objeto de estas instruccioneses almacenar el contenido del registro L en la posicin de memoria 2040H. Segn la tabladel repertorio de instrucciones de la Figura 6.21 el microprocesador genrico no tiene ningunainstruccin para almacenar directamente en memoria el registro L. Por tanto, ha sido necesariotransferir primero el contenido del registro L a A y despus almacenar A en memoria. A veces seencuentra que los microprocesadores con repertorios limitados de instrucciones (como la MPUgenrica) son ms dificiles de programar que las unidades con repertorios de mayor alcance.En resumen, las tcnicas de bifurcacin observadas en el diagrama de fljo se ejecutan porinstrucciones de salto (a veces denominadas de bifurcacin). Las instrucciones de bifurcacincondicional toman una decisin segn la condicin de un sealizador particular del registro destatus. La tcnica de bifurcacin es muy utilizada en la mayora de los programas.PROBLEMAS RESUELTOS6.85. La caja en forma de diamante de la Figura 6.49a se denomina ____(smbolo dedecisin, diamante de bifurcacin).Solucin:La caja en forma de diamante de la Figura 6.49a se denomina smbolo de decisin.r 199. PROORAMACION DEL MICROPROCESADOR 1916.86. La instruccin comparar A con 1:;, de la Figura 6.49b __(cambia, no cambia) elvalor del acumulador.Solucin:Las instrucciones de comparacin no cambian el valor del acumulador an cuando se realiceuna resta interna (A - L en este ejemplo).6.87. La instruccin comparar A con L de la Figura 6.49b afecta al sealizador ___ (CY,Z) en este programa.Solucin: La instruccin comparar A con L de la Figura 6.49b afecta al sealizador CYen este progra11ma. El sealizador de cero (Z) tambin es afectado pero no es comprobado posteriormente por instruccin de bifurcacin en este programa.6.88. Acudir a la Figura 6.49. Si el contenido del acumulador (A) y del registro L son iguales, elsealizador de arrastre es puesto a ___ (0, 1) por la instruccin de comparacin y labifurcacin ___ ("V"""Vv~(v~0'('I.l~i;..G>i}~2020 +- Utilizado como almacenamiento temporal por la subrutina2040 05 Primer nmero Que se va a sumar2041 09 Segundo nmero Que se va a sumarlace.., d'~,Jt.I...... rl indicdores de status, del microprocesador8085 son el sealizador de signo, el de cero, el de arrastre auxiliar, el de paridad y el dearrastre.El contenido del acumulador (la suma) de la Figura 8.9 despuS de la operacin de sumaser __(8 bits)., 268. 260 F1JNDAMENTOS DE LOS MICROPROCESADORES ~Acumulador,,"m","w 111"~.~_jAntes de la operacin _____ + ._ Despus de la operacin,/ ADD B r-r--r"-....--,--;---r---r--,Registro B I0000 1111 I I? I? I I? I I? I I? I Sealizadoress Z AC P CYFigura 8.9.Solucin:Sumar los binarios 11110000 + 00001111 1000 0111. El contenido del acumulador de laFigura 8.9 despus de la operacin de suma ser 00000111 (los 8 bits menos significativos de lasuma).8.17. El sealizador de signo (S) estar a __(O, 1) despus de la operacin de suma de laFigura 8.9.Solucin:El bit ms significativo (bit 7) del acumulador es el bit de signo. Despus de la operacin desuma el acumulador contiene 00000111 en la Figura 8.9. Por tanto el bit de signo estar a O.8.18. El sealizador de cero (Z) estar a __(O, 1) despus de la operacin de suma de la Figura8.9.Solucin:El contenido del acumulador despus de la operacin de suma en la Figura 8.9 es 00000 111;como no es cero, el sealizador de cero estar a O.8.19. El sealizador de arrastre auxiliar (AC) estar a __(0, 1) despuS de la operacin desuma de la Figura 8.9.Solucin:Las posiciones B3 del acumulador y' del registro B tienen un 1 en la Figu~a 8.9. En binario1+ 1= 102, Esto significa que habr una salida de arrastre de la posicin B3 a la posicin B4'Debido a este arrastre el sealizador de arrastre auxiliar (AC) se pondr a 1, despUs de la operacinde suma de la Figura 8.9.8.20. El sealizador de paridad (P) estar a __(O. 1) despus de la operacin de suma de laFigura 8.9.Solucin:Despus de la operacin de la Figura 8.9, el acumulador contendr el binario 00000111. Estasuma contiene tres 1, que no es paridad par. y por tanto el sealizador de paridad estar a O.8.21. El sealizador de arrastre (eY) estar a __(0, 1) despus de la operacin de suma dela Figura 8.9.Solucin:Sumar los binarios 11111000 + 00001111 - 100000111. Debido a que el overflow (rebose)sobrepasa el lmite de 8 bits del acumulador, hay un arrastre en la posicin B7' El sealizador dearrastre (eY) se pondr a 1 despus de la operacin de suma en la Figura 8.9.t "" ~" 269. 8.22.le Ud, 2, 1 tll EL MICROPROCESADOR INTEL 8080{8085 261 ;,La interrupcin hardware de prioridad ms elevada en el microprocesador 8085 que no : puede ser inhabilitada es la __(/NTR, TRAP).Solucin:La interrupcin hardware de ms alta prioridad en el microprocesador 8085 que no puede serinhabilitada se llama TRAP,8.23. Acudir a la Figura 8.6. Cuando se activa la interrupcin hardware RST 7.5, la CPU ,guarda el contenido de ______ en la pila y bifurca a la direccin de memoria__(hex). ,,.1Solucin: !iDe acuerdo con la tabla de la Figura 8.6, cuando se activa la interrupcin hardware RST 7.5, la 11CPU guarda el contenido del contador de programa en la pila y bifurca a la direccin de memoria 13CH. I.t 8.24. Mientras el bus de datos transfiere 8 bits de datos en paralelo, la patilla SID mlilneja__(nmero) bit(s) cada vez. '1Solucin: De acuerdo con la Figura 8.7a, la patilla SID (entrada de datos serie) introduce I bit cadavez.8.4. MODOS DE DIRECCIONAMIENTOComo en el microprocesador genrico, la MPU 8085 utiliza cinco modos de direccionamiento.Estos son:l. Direccionamiento implicado.2. Direccionamiento de registro.3. Direccionamiento inmediato.4. Direccionamiento directo.5. Direccionamiento indirecto de registro.Direccionamiento implicadoEl modo de direccionamiento de ciertas instrucciones de la MPU 8085 es implicado por (oinherente a) la funcin de la instruccin. Por ejemplo, la instruccin STC (poner a I el sealizadorde arrastre) est relacionada con el sealizador de arrastre solamente y no con otros registroso posiciones de memoria.Direccionamiento de registroMuchas instrucciones de la MPU 8085 utilizan direccionamiento de registro. Cuando se utilizanestas instrucciones, se especifican la fuente del operando y la operacin. Considerar la ejecucinde la instruccin ADD e de la Figura 8.10. En este ejemplo, el operando del registro fuente(registro e en este caso) se suma al operando localizado en el acumulador. Una vez que se ejecutala instruccin ADD C, la suma (00001111 1 en este ejemplo) se deposita en el acumulador. Comoes habitual, la operacin de suma tambi afecta a los sealizadores del registro de status. 270. 262 FUNDAMENTOS DE LOS MICROPROCESADORESAcumulador AcumuladorSealizadoresZ ACFigura 8.10. La instruccin ADD e (modo direccionamiento de registro).La instruccin 'ADD e ilustrada en la Figura 8.10 utilizaba el direccionamiento de registros.Ambos operandos estaban localizados en registros internos de la MPU (registros A y C). Lasinstrucciones que utilizan el direccionamiento de registro son muy eficientes ya que solamenteutilizan un espacio de la memoria de programa de 1 byte. Tambin se ejecutan rpidamenteporque no tienen que buscar operandos en memoria. Buscar en memoria es una operacinrelativamente lenta.Direccionamiento inmediatoLas instrucciones que utilizan direccionamiento inmediato tienen los datos inmediatamente acontinuacin del cdigo de op en la memoria del programa. A ttulo de ejemplo se ilustra lainstruccin ADI (suma inmediata) del 8085 en la Figura 8.1. El microprocesador busca el cdigode op (C6H en este ejemplo) en la memoria de programa. Despus de decodificar, la MPUdetermina que sta es una instruccin de direccionamiento inmediato. Por tanto encuentra eldato inmediato en la siguiente posicin consecutiva de la memoria de programa despus delcdigo de op. Este dato inmediato (0000 1 0002) se suma al contenido del acumulador(0000 1 002), Despus de la operacin, la suma (000 101002) se coloca en el acumulador.Acumulador Acumulador ..Memoria de programa SealizadoresDato inmediatoFigura 8.11. La instruccin ADI (moda de direccionamiento inmediato).Las instrucciones inmediatas del microprocesador 8085 utilizan el acumulador como operandoimplicado, como en la operacin ADI mostrada en la Figura 8.1. La instruccin MVI (transferirinmediato) del 8085 puede transferir datos inmediatos a cualquier registro o posicin dememoria. La instruccin LXI (carga registro par inmediato) del 8085 carga un registro par con unvalor de 16 bits y por tanto no afecta al acumulador.tli, i ~ ~ 271. -EL MICROPROCESAOOR INTEL 8080/8085 263Direccio1ltlmie1lto directo Las operaciones que utilizan direccionamiento directo en la MPU del Intel 8085 se especifican utilizando formatos de instruccin de 3 bytes. Este formato est representado en la Figura 8.12a.El byte l contiene el cdigo de op para la instruccin de direccionamiento directo. El byte 2 li ji contiene el byte de orden inferior de la direccin del operando. El byte 3 de la instruccin contiene el byte de orden superior de la direccin del operando.La instruccin LDA (cargar A directo) del 8085 se est ejecutando en la Figura 8.12b. Lainstruccin de 3 bytes se muestra en la parte inferior del diagrama. El cdigo de op de la instruccinLDA es 3AH. Los 2 siguientes bytes de la memoria de programa son ensamblados por elmicroprocesador en una direccin de 16 bits (0200H en este ejemplo). Esta direccin de la me,moria de datos (0200H) es accedida entonces por la MPU y su contenido (1111111 12) es cargadoentonces en el 'acumulador,Cdigo de operacin Byte lByte de orden inferior Byte 2 Memoria de programa de la direccinByte de orden superior Byte 3de la direccinfa) Formato de instruccin para direccionamiento directoAcumuladorAntes de la operacin------"'f00lO0000 0000 I- t Byte de orde'nCdigo deoperacin3AHAcumuladorDespus de la operacin00000000 Memoria de programainferior de la dr. ,-00000010(b) La instruccin de cargar A directoFigura 8.12.Las instrucciones que utilizan direccionamiento directo a veces son evitadas por los diseadoresde microprocesadores y por los programadores, El direccionamiento directo requiere muchoespacio de la memoria de programa (3 bytes de memoria de programa por una instruccin de laMPU 8085). Las operaciones de direccionamiento directo tambin requieren un tiempo de ejecucinrelativamente largo, debido a los numerosos accesos a memoria que se necesitan.1.:,:,........_ 272. ".-41 6w; 1(.. 7264 FUNDAMENTOS DE LOS MICROPROCESADORESDireccionamiento indirecto de registro'Las instrucciones de registro indirecto referencian la memoria utilizando el contenido de unregistro par para sealar la direccin del operando. Un ejemplo de una operacin de registroindirecto se ilustra en la Figura 8.13. La instruccin ADD M (sumar memoria), de la Figura 8.13,suma el contenido del acumulador con el contenido de la posicin de memoria indicado por ladireccin del registro par HL de la MPU. En este ejemplo, el registro par HL seala la posicin dememoria 2050H. El operando en la posicin 2050H (0000000 I + 11111111 = I 0000 0000. Los 8bits menos significativos de la suma se depositan en el acumulador despus de la operacinADD M. Los sealizadores apropiados tambin se ponen a I y O segn el resultado de la operacinde suma y se muestran en la Figura 8.13.A,.muJado, 11Illl~ AcumuladorAntes de la operacin ____ +/' ADDMMemoria de datos I0000 000 I I Sealzadores(2550H) . s z eReg;"," po' HL 'Q.,OH LFigura 8.13. Una instruccin de suma indirecta de registro.Modos de direccionamiento combinadosAlgunas instrucciones de la MPU 8085 utilizan una combinacin de modos de direccionamiento.Una instruccin de CALL (LLAMADA) a subrutina, por ejemplo, combina el direccionamientodirecto e indirecto de registro. El direccionamiento directo en una instruccin CALLespecifica la direccin de la subrutina deseada. El direccionamiento indirecto de registro es el delpuntero de pila. La instruccin CALL introduce primero el contenido ac;.tual del contador deprograma en la posicin de memoria especificada por el puntero de pila. A continuacin, elprocesador carga la direccin directa en el contador de programa. Finalmente, la MPU salta a lasubrutina cuya direccin se encuentra ahora en el contador de programa.PROBLEMAS RESUELTOS8.25. Listar los cinco modos de direccionamiento utilizados por el microprocesador Intel8085.Solucin:El microprocesador Intel 8085 utiliza los modos de direccionamiento implicado, de registro,inmediato, directo e indirecto de registro.,., 273. EL MICROPROCESAOOR INTEL 8080/8085 2658.26. La instruccin CMC (arrastre complementario) del 8085 afecta solamente el sealizadorde arrastre y no a otros registros o posiciones de memoria. Por tanto utiliza el modo dedireccionamiento __(directo, implicado).Solucin:La instruccin CMC (arrastre complementario) utiliza el modo de direccionamiento implicadoporque afecta solamente el seializador de arrastre y no utiliza otros registros o posiciones de memoria.8.27. La instruccin MOV B,A del 8085 (transfiere A a B) transfiere el contenido de un registroa otro. La instruccin MOV B,A por tanto utiliza el modo de direccionamiento__(inmediato, de registro).Solucin:La instruccin MOV B,A del 8085 (transfiere A a B) ejecuta una operacin registro a registro ypor tanto utiliza el modo de direccionamiento de registro.8.28. La instruccin MVI A del 8085 mostrada en la Figura 8.14 utiliza el modo de direccionamiento__(implicado, inmediato).Solucin:En la Figura 8.14 se determina que el dato es transferido desde el segundo byte de la memoriadel programa al acumulador. Esto significa que la instruccin MVI A (transfiere inmediato) del8085 utiliza el modo de direccionamiento inmediato.Acumulador ? AcumuladorAntes de la operacin Despus de la operacinMemoria de programa(2050H), DatoFigura 8.14. Una instruccin de transferencia inmediata. 8.29. La instruccin SUB M del 8085 de la Figura 8.15 utiliza el modo de direccionamientode _ (registro, indirecto de registro). Acumulador AcumuladorAntes de la operacin - )====:::-:-.. ~SUBMMemo~~gqdatos 10000 1001 I Sealizadores~LRegistro par HL 1 2060H Is z AC p CFigura 8.15. La instruccin SUB M. 274. A partir de la Figura 8.1, se determina que el sustraendo proviene de la posicin de la memoriade datos sealada por el registro par HL. Esto significa que la instruccin SUB M del 8085 utiliza elmodo de direccionamiento indirecto de registro.En la Figura 8.15, el minuendo est localizado en el acumulador mientras que el sustraendose encuentra en la posicin ___ (hex) de la memoria de datos. .Solucin: 'En la Figura 8.15, el minuendo est localizado en el acumulador mientras que el sustraendo se 266 FUNDAMENTOS DE LOS MICROPROCESADORESSolucin:~.30.encuentra en la posicin 2060H de la memoria de datos como seala el registro par HL.~ 8.5. REPERTORIO DE INSTRUCCIONES DEL 8080/8085Los microprocesadores lntel 8080 y 8085 son utilizados para formar computad,?ras de programaalmacenado.Las instrucciones del programa son almacenadas como bytes de 8 bits en un rea dememoria denominada memoria de programa. El microprocesador Intel 8080/8085 utiliza instruccionesde 1,2 y 3 bytes. El primer byte de la instruccin es siempre el cdigo de op (cdigo deoperacin), que especifica cul de las 200 instrucciones del microprocesador debe ejecutarse. LaMPU reconoce estos cdigos de op cuando estn en forma binaria de 8 bits. El conjunto deinstrucciones a las cuales responder la MPU 8080 y 8085 est fijado, permanentemente, en eldisefio de las pastillas. El 8085 utiliza los mismos cdigos de op que la MPU del 8080. Elrepertorio de instrucciones del 8085 tambin contiene dos instrucciones extra, adems de lasutilizadas por la MPU 8080.Intel Corporation agrupa las instrucciones del microprocesador 8080/8085 en las siguientescategoras funcionales:1. Grupo de transferencia de datos.2. Grupo aritmtico. .3. Grupo lgico.4. Grupo de bifurcacin.5. Grupo de pila, E/S y de control mquina.El grupo de instrucciones de transferencia de datos transfiere datos. entre registros o entreposiciones de memoria y registros. Entre estas instrucciones se encuentran transferencias, cargas,almacenamientos e intercambios.El grupo aritmtico de instrucciones realiza sumas, restas, incrementos o decrementos endatos de registros o memoria. El grupo lgico de instrucciones realiza operaciones ANO, OR YXOR, comparaciones, desplazamientos circulares o complementaciones de datos en registros oentre memoria y un registro.El grupo de instrucciones de bifurcacin indica saltos condicionales o incondicionales, llamadas,vueltas y reinicializaciones. El grupo de pila, E/S y de control de mquina incluye instruccionespara mantener la pila, leer los puertos de entrada, escribir en los puertos de salida, inicializar yleer mscaras de interrupcin e inicializar y borrar sefializadores.Un resumen del repertorio de instrucciones del microprocesador 8080/8085 se detalla en laFigura 8.16. Este es un listado alfabtico por nemotcnicos. Se utilizan los nemotcnicos conderecho de copia de Intel junto con los cdigos de op nicos del 8080/8085. Los cdigos de op 275. ..-..EL MICROPROCESADOR INTEL 8080/8085 267t NemotcnicoCdigo de op(hex) DescripcinAADDAADDBADDCADDDADDEADDHADDL87808182838485Suma A a A (doble A)Suma B aASuma CaASumaD aASuma EaASuma HaASuma L a AADDM 86 Suma LOC memoria (H & L) a AADI v C6 Suma dato inmediato v a AADCAADCBADCCADCDADCEADCHADCL8F88898A8B8C8DSuma A a A con arrastre (doble A con arrastre)Suma B a A con arrastreSuma C a A con arrastreSuma D a A con arrastreSuma E a A con arrastreSuma H a A con arrastreSuma L a A con arrastreADCM 8E Suma LOC memoria (H & L) a A con arrastreACI v CE Suma dato inmediato v a A con arrastreANAAANABANACANADANA EANAHANALA7AOAlA2A3A4A5Examina A y borra arrastreANDBconAANDCconAANDD con AANDE con AANDHconAANDL con AANA M A6 AND LOC memoria (H & L) con AANI v E6 AND dato inmediato v con ACALLaa CD Call subrutina en direccin aaCZaaCNZaaCPaaCM aaCCaaCNCaaCPEaaCPOaaCCC4F4FCDDD4ECE4Si cero, CALL en direccin aaSi no cero, CALL en direccin aaSi ms, CALL en direccin aaSi menos, CALL en direccin aaSi arrastre, CALL en direccin aaSi no arrastre, CALL en direccin aaSi paridad par, CALL en direccin aaSi paridad impar, CALL en direccin aaC CMACMC2F3FComplementa AComplementa arrastre CMPACMPBCMPCCMPDCMPECMPHCMPLBFB8B9BABBBCBDPone a I el sealizador de ceroCompara A con BCompara A con CCompara A con DCompara A con ECompara A con HCompara A con LCMPM BE Compara A con LOC memoria (H & L)CPI v FE Compara A con dato inmediato vDAA 27 Ajuste decimal ADDADBDADDDADHDADSP09192939Suma B & Ca H & LSuma D & E a H & LSumaH & L a H & L (doble H & L)SumaSPa H & L]11I"t 'Figura.tt8.16. Resumen del repertorio de instrucciones del microprocesador 8080/8085.(Todos los n