El Universo Digital Ibm Pc at y Ps2

610

Transcript of El Universo Digital Ibm Pc at y Ps2

DEL IBM PC, AT Y PS/2Edicin 4.0(4 edicin)

EL UNIVERSO DIGITAL

Versin impresa del original electrnico ubicado en:

http://www.gui.uva.es/udigital

Limitacin de garanta: Pese a que todos los programas e ideas incluidas en el libro han sido probados, el autor y el editor no se responsabilizan de los daos que su funcionamiento pueda ocasionar bajo ninguna circunstancia ni estn obligados a corregir el contenido del libro.

Marcas registradas: IBM PCjr, PC, XT, AT, PS/2, OS/2 y Microchannel son marcas registradas de International Business Machines. MS-DOS, WINDOWS, Microsoft C y Microsoft Macro Assembler son marcas registradas de Microsoft Corporation. DR-DOS es marca registrada de Digital Research Inc. QEMM y Desqview son marcas registradas de Qarterdeck Corporation. UNIX es marca registrada de AT&T Bell Laboratories. Intel es marca registrada de Intel Corporation. Motorola es marca registrada de Motorola Inc. Turbo Assembler, Turbo C, Turbo Debugger y Borland C++ son marcas registradas de Borland International Inc.

EL UNIVERSO DIGITAL DEL IBM PC, AT Y PS/2Ciriaco Garca de Celis Edicin 4.0

Ediciones Grupo Universitario de Informtica (Valladolid)

EL UNIVERSO DIGITAL DEL IBM PC, AT Y PS/2 - v4.0 Ciriaco Garca de Celis.Grupo Universitario de Informtica, 1992-1997.

Publica: Asociacin Grupo Universitario de informtica, 1992-1997. Apartado de correos 6062, Valladolid. Internet: http://www.gui.uva.es Autor: Ciriaco Garca de Celis (http://www.gui.uva.es/~ciri) Registro de propiedad Intelectual n 1121; Madrid, 1993. Versin electrnica en Internet: http://www.gui.uva.es/udigital Imprimi, durante la etapa impresa: Servicio de Reprografa de la Universidad de Valladolid. Casa del Estudiante, avda. Real de Burgos s/n. [Actualmente no se edita impreso; abstnganse de contactar con ellos]. Tirada, durante la etapa impresa: Ms de 1200 ejemplares. Licencia de uso y distribucin: Ver pgina 11.

NDICE

5

NDICEPRLOGO DE LA EDICIN 4.0 ELECTRNICA....................................................................... PRLOGO DE LA TERCERA EDICIN (1994).......................................................................... 1 - INTRODUCCIN .......................................................................................................................... 1.1 - Nmeros binarios, octales y hexadecimales ................................................................. 1.2 - Cambio de base ............................................................................................................. 1.3 - Estructura elemental de la memoria .............................................................................. 1.4 - Operaciones aritmticas sencillas en binario ................................................................ 1.5 - Complemento a dos ....................................................................................................... 1.6 - Agrupaciones de bytes .................................................................................................. 1.7 - Representacin de datos en memoria........................................................................... 1.8 - Operaciones lgicas en binario ..................................................................................... 2 - ARQUITECTURA E HISTORIA DE LOS MICROORDENADORES........................................... 2.1 - Arquitectura Von Neuman.............................................................................................. 2.2 - El microprocesador ........................................................................................................ 2.3 - Breve historia del ordenador personal y el DOS ............................................................ 3 - MICROPROCESADORES 8086/88, 286, 386, 486 y Pentium .................................................. 3.1 - Caractersticas generales .............................................................................................. 3.2 - Registros del 8086 y del 286 ......................................................................................... 3.3 - Registros del 386 y procesadores superiores ............................................................... 3.4 - Modos de direccionamiento ........................................................................................... 3.5 - La pila ............................................................................................................................. 3.6 - Un programa de ejemplo ............................................................................................... 4 - JUEGO DE INSTRUCCIONES 80x86 ......................................................................................... 4.1 - Descripcin completa de las instrucciones.................................................................... 4.1.1 - De carga de registros y direcciones ............................................................... 4.1.2 - De manipulacin del registro de estado ......................................................... 4.1.3 - De manejo de la pila ....................................................................................... 4.1.4 - De transferencia de control............................................................................. 4.1.5 - De entrada/salida............................................................................................ 4.1.6 - Aritmticas ...................................................................................................... Suma............................................................................................................. Resta............................................................................................................. Multiplicacin................................................................................................. Divisin.......................................................................................................... Conversiones ................................................................................................ 4.1.7 - Manipulacin de cadenas............................................................................... 4.1.8 - Operaciones lgicas a nivel de bit.................................................................. 4.1.9 - De control del procesador............................................................................... 4.1.10 - De rotacin y desplazamiento ...................................................................... 4.2 - Resumen alfabtico de las instrucciones y banderines. ndice..................................... 4.3 - Instrucciones especficas del 286, 386 y 486 en modo real ......................................... 4.3.1 - Diferencias en el comportamiento global respecto al 8086 ........................... 4.3.2 - Instrucciones especficas del 286................................................................... 4.3.3 - Instrucciones propias del 386 y 486............................................................... 4.3.4 - Deteccin de un sistema AT o superior ......................................................... 4.3.5 - Evaluacin exacta del microprocesador instalado ......................................... 4.3.6 - Modo plano (flat) del 386 y superiores ........................................................... 11 17 21 21 22 22 23 23 23 23 24 25 25 26 27 31 31 33 36 36 38 39 41 41 41 43 45 46 49 49 49 51 53 54 55 55 58 59 60 63 64 64 65 66 68 68 70

5

EL UNIVERSO DIGITAL DEL IBM PC, AT Y PS/2

5 - EL LENGUAJE ENSAMBLADOR DEL 80x86............................................................................ 71 5.1 - Sintaxis de una lnea en ensamblador........................................................................... 71 5.2 - Constantes y operadores............................................................................................... 72 5.2.1 - Constantes...................................................................................................... 72 5.2.2 - Operadores aritmticos .................................................................................. 72 5.2.3 - Operadores lgicos......................................................................................... 73 5.2.4 - Operadores relacionales................................................................................. 73 5.2.5 - Operadores de retorno de valores.................................................................. 73 5.2.6 - Operadores de atributos ................................................................................. 73 5.3 - Principales directivas ..................................................................................................... 75 5.3.1 - De definicin de datos .................................................................................... 75 5.3.2 - De definicin de smbolos............................................................................... 75 5.3.3 - De control del ensamblador............................................................................ 76 5.3.4 - De definicin de segmentos y procedimientos............................................... 76 5.3.5 - De referencias externas.................................................................................. 78 5.3.6 - De definicin de bloques ................................................................................ 78 5.3.7 - Condicionales ................................................................................................. 80 5.3.8 - De listado ........................................................................................................ 80 5.4 - Macros............................................................................................................................ 81 5.4.1 - Definicin y borrado de las macros ................................................................ 81 5.4.2 - Ejemplo de una macro sencilla....................................................................... 82 5.4.3 - Parmetros formales y parmetros actuales.................................................. 82 5.4.4 - Etiquetas dentro de macros. Variables locales. ............................................. 83 5.4.5 - Operadores de macros ................................................................................... 84 5.4.6 - Directivas tiles para macros.......................................................................... 85 5.4.7 - Macros avanzadas con nmero variable de parmetros ............................... 87 5.5 - Programacin modular y paso de parmetros .............................................................. 88 6 - EL ENSAMBLADOR EN ENTORNO DOS.................................................................................. 91 6.1 - Tipos de programas ejecutables bajo DOS................................................................... 91 6.2 - Ejemplo de programa de tipo COM ............................................................................... 91 6.3 - Ejemplo de programa de tipo EXE ................................................................................ 92 6.4 - Proceso de ensamblaje ................................................................................................. 94 6.5 - La utilidad DEBUG/SYMDEB ........................................................................................ 96 6.6 - Las funciones del DOS y de la BIOS............................................................................. 99 7 - ARQUITECTURA DEL PC, AT y PS/2 BAJO DOS .................................................................... 103 7.1 - Las interrupciones.......................................................................................................... 103 7.2 - La memoria. Los puertos de entrada y salida. .............................................................. 105 7.3 - La pantalla en modo texto.............................................................................................. 105 7.4 - La pantalla en modo grfico........................................................................................... 106 7.4.1 - Modos grficos................................................................................................ 106 7.4.2 - Deteccin de la tarjeta grfica instalada ........................................................ 108 7.4.3 - Introduccin al estndar grfico VGA............................................................. 108 7.4.4 - Ejemplo de grficos empleando la BIOS........................................................ 114 7.4.5 - Ejemplo de grficos a nivel hardware............................................................. 115 7.4.6 - El estndar grfico VESA ............................................................................... 116 7.5 - El teclado........................................................................................................................ 119 7.5.1 - Bajo nivel......................................................................................................... 119 7.5.2 - Nivel intermedio .............................................................................................. 122 7.5.3 - Alto nivel.......................................................................................................... 125 7.6 - Los discos ...................................................................................................................... 125 7.6.1 - Estructura fsica .............................................................................................. 125 7.6.2 - Cabeza 0. Pista 0. Sector 1. ........................................................................... 126 7.6.3 - La FAT ............................................................................................................ 127 7.6.4 - El directorio raz .............................................................................................. 129 7.6.5 - Los subdirectorios........................................................................................... 130

NDICE

5

7.6.6 - El BPB y el DPB.............................................................................................. 131 7.6.7 - La BIOS y los disquetes ................................................................................. 131 7.6.8 - Disquetes floptical 3 de 20 Mb .................................................................... 132 7.6.9 - Ejemplo de acceso al disco a alto nivel.......................................................... 132 7.6.10 - Ejemplo de acceso al disco a bajo nivel....................................................... 133 7.7 - El PSP ............................................................................................................................ 137 7.8 - El proceso de arranque del PC...................................................................................... 139 7.9 - Formato de las extensiones ROM ................................................................................. 139 7.10 - Formato fsico de los ficheros EXE.............................................................................. 140 8 - LA GESTIN DE MEMORIA DEL DOS ...................................................................................... 143 8.1 - Tipos de memoria en un PC .......................................................................................... 143 8.2 - Bloques de memoria ...................................................................................................... 145 8.2.1 - El bloque de memoria del programa .............................................................. 145 8.2.2 - El bloque del entorno...................................................................................... 145 8.2.3 - Los bloques de control de memoria (MCB's) ................................................. 146 8.2.4 - La cadena de los bloques de memoria .......................................................... 146 8.2.5 - Relacin entre bloque de programa y de entorno.......................................... 147 8.2.6 - Tipos de bloques de memoria ........................................................................ 147 8.2.7 - Liberar el espacio de entorno en programas residentes................................ 148 8.2.8 - Peculiaridades del MS-DOS 4.0 y 5.0............................................................ 148 8.2.9 - Cmo recorrer los bloques de memoria. Ejemplo.......................................... 149 8.3 - Memorias extendida y superior XMS............................................................................. 152 8.4 - Memoria expandida EMS............................................................................................... 153 9 - SUBPROCESOS, RECUBRIMIENTOS Y FILTROS................................................................... 157 9.1 - Llamada a subprocesos y recubrimientos u overlays ................................................... 157 9.2 - Construccin de filtros.................................................................................................... 159 10 - PROGRAMAS RESIDENTES .................................................................................................... 161 10.1 - Principios bsicos ........................................................................................................ 161 10.2 - Un ejemplo sencillo ...................................................................................................... 162 10.3 - Localizacin de un programa residente....................................................................... 163 10.3.1 - Mtodo de los vectores de interrupcin ....................................................... 163 10.3.2 - Mtodo de la cadena de bloque de memoria............................................... 163 10.3.3 - Mtodo de la interrupcin Multiplex.............................................................. 164 10.4 - Expulsin de un programa residente de la memoria................................................... 164 10.5 - Gestin avanzada de la interrupcin Multiplex............................................................ 165 10.5.1 - El convenio BMB Compuscience ................................................................. 165 10.5.2 - El convenio CiriSOFT ................................................................................... 165 10.5.3 - La propuesta AMIS ....................................................................................... 170 10.5.4 - Comparacin entre mtodos ........................................................................ 172 10.6 - Mtodos especiales para economizar memoria.......................................................... 172 10.7 - Programas autoinstalables en memoria superior........................................................ 173 10.8 - Programas residentes en memoria extendida con DR-DOS 6.0 ................................ 174 10.9 - Ejemplo de programa residente que utiliza la BIOS.................................................... 176 10.10 - Uso sin lmites de servicios del DOS en programas residentes ............................... 184 10.10.1 - Una primera aproximacin ......................................................................... 185 10.10.2 - Pasos a realizar para usar el DOS............................................................. 186 10.10.3 - Resumiendo, no es tan difcil! ................................................................... 187 10.10.4 - Un mtodo alternativo: el SDA ................................................................... 188 10.10.5 - Mtodos menos ortodoxos ......................................................................... 189 10.11 - Ejemplo de programa residente que utiliza el DOS .................................................. 189 10.12 - Programas residentes invocables en modos grficos............................................... 197 10.13 - Programas residentes en entorno WINDOWS 3....................................................... 199 11 - CONTROLADORES DE DISPOSITIVO..................................................................................... 203 11.1 - Introduccin.................................................................................................................. 203

5

EL UNIVERSO DIGITAL DEL IBM PC, AT Y PS/2

11.2 - Encabezamiento y palabra de atributos ...................................................................... 203 11.3 - Rutinas de estrategia e interrupcin ............................................................................ 205 11.4 - Ordenes a soportar por el controlador de dispositivo.................................................. 205 11.5 - La cadena de controladores de dispositivo instalados................................................ 210 11.6 - Ejemplo de controlador de dispositivo de caracteres.................................................. 212 11.7 - Ejemplo de controlador de dispositivo de bloques ...................................................... 214 11.7.1 - Disco virtual TURBODSK: Caractersticas................................................... 214 11.7.2 - Ensamblando TURBODSK........................................................................... 216 11.7.3 - Anlisis detallado del listado de TURBODSK .............................................. 216 11.8 - Los controladores de dispositivo y el DOS.................................................................. 244 12 - EL HARDWARE DE APOYO AL MICROPROCESADOR........................................................ 245 12.1 - La arquitectura del ordenador compatible ................................................................... 245 12.2 - El interfaz de perifricos 8255 ..................................................................................... 247 12.2.1 - Descripcin del integrado ............................................................................. 247 12.2.2 - El 8255 en el PC ........................................................................................... 248 12.2.3 - Un mtodo para averiguar la configuracin del PC/XT................................ 248 12.3 - El temporizador 8253 u 8254....................................................................................... 249 12.3.1 - Descripcin del integrado ............................................................................. 249 12.3.2 - El 8254 en el ordenador ............................................................................... 255 12.3.3 - Temporizacin .............................................................................................. 256 12.3.4 - Sntesis de sonido ........................................................................................ 258 12.4 - El controlador de interrupciones 8259......................................................................... 261 12.4.1 - Cmo y por qu de las interrupciones.......................................................... 261 12.4.2 - Descripcin del integrado 8259 .................................................................... 261 12.4.3 - El 8259 dentro del ordenador ....................................................................... 267 12.4.4 - Ejemplo: cambio de la base de las interrupciones....................................... 269 12.5 - El chip DMA 8237 ........................................................................................................ 270 12.5.1 - El acceso directo a memoria ........................................................................ 270 12.5.2 - Descripcin del integrado 8237 .................................................................... 270 12.5.3 - El 8237 en el ordenador ............................................................................... 279 12.5.4 - Ralentizar un equipo AT con el DMA ........................................................... 281 12.5.5 - Acerca de las pginas de DMA .................................................................... 283 12.6 - El controlador de disquetes NEC 765 ......................................................................... 284 12.6.1 - La tecnologa de grabacin en disco............................................................ 284 12.6.2 - Descripcin del FDC (Floppy Disk Controller) 765 ...................................... 286 12.6.3 - El 765 dentro del ordenador ......................................................................... 294 12.6.4 - Densidades de disco y formatos estndar ................................................... 294 12.6.5 - Acceso a disco con DMA.............................................................................. 297 12.6.6 - Lectura y escritura de sectores de disco sin DMA ....................................... 305 12.6.7 - Programacin avanzada del controlador de disquetes: 2M 3.0................... 309 12.6.7.1 - Formato de la primera pista .......................................................... 311 12.6.7.2 - Puntualizaciones sobre el formato de mxima capacidad ........... 315 12.6.7.3 - Descripcin de funcionamiento del soporte residente .................. 316 12.6.7.4 - Descripcin del programa de formateo (2MF) para 2M................ 330 12.6.7.5 - Un programa para medir el rendimiento de los disquetes............ 338 12.6.7.6 - La versin para PC/XT de 2M: 2MX ............................................. 340 12.6.7.7 - La opcin BIOS de 2M: 2M-ABIOS y 2M-XBIOS ......................... 341 12.6.7.8 - La utilidad 2MDOS ........................................................................ 341 12.6.7.9 - Cmo superar los 2.000.000 de bytes en 3: 2MGUI ................. 342 12.6.7.10 - Uso de 2M 3.0 en OS/2 2.1......................................................... 345 12.7 - El disco duro del AT (IDE, MFM, Bus Local) ............................................................... 346 12.7.1 - El interface .................................................................................................... 346 12.7.2 - Programacin de la controladora ................................................................. 346 12.7.3 - Ejemplo prctico de programacin............................................................... 349 12.8 - El controlador del teclado: 8042 .................................................................................. 351

NDICE

5

12.8.1 - El 8042 .......................................................................................................... 351 12.8.2 - El teclado del AT........................................................................................... 352 12.8.3 - Comunicacin CPU teclado ................................................................... 352 12.8.4 - Comunicacin teclado CPU ................................................................... 355 12.9 - El puerto serie: UART 8250 ......................................................................................... 356 12.9.1 - Descripcin del integrado ............................................................................. 356 12.9.2 - El 8250 en el ordenador ............................................................................... 363 12.9.3 - Ejemplo: autodiagnstico del 8250 .............................................................. 364 12.10 - El puerto de la impresora........................................................................................... 365 12.10.1 - Los registros del puerto paralelo ................................................................ 365 12.10.2 - Envo de caracteres.................................................................................... 365 12.10.3 - Cable NULL-MODEM para conectar dos ordenadores ............................. 366 12.11 - El ratn ....................................................................................................................... 367 12.12 - El reloj de tiempo real del AT: Motorola MC146818.................................................. 368 12.12.1 - Descripcin del integrado ........................................................................... 368 12.12.2 - El MC146818 dentro del ordenador ........................................................... 370 12.12.3 - Un mtodo para averiguar la configuracin del AT y PS/2 ........................ 371 13 - EL ENSAMBLADOR Y EL LENGUAJE C ................................................................................ 373 13.1 - Uso del Turbo C y Borland C a bajo nivel ................................................................... 373 13.1.1 - Acceso a los puertos de E/S ........................................................................ 373 13.1.2 - Acceso a la memoria .................................................................................... 373 13.1.3 - Control de interrupciones.............................................................................. 374 13.1.4 - Llamada a interrupciones ............................................................................. 374 13.1.5 - Cambio de vectores de interrupcin............................................................. 374 13.1.6 - Programas residentes................................................................................... 375 13.1.7 - Variables globales predefinidas interesantes............................................... 375 13.1.8 - Insercin de cdigo en lnea......................................................................... 375 13.1.9 - Las palabras clave interrupt y asm............................................................... 375 13.2 - Interfaz C (Borland/Microsoft) - Ensamblador ............................................................. 376 13.2.1 - Modelos de memoria .................................................................................... 376 13.2.2 - Integracin de mdulos en ensamblador ..................................................... 376 APNDICES: I II III IV V VI VII VIII IX X XI

Mapa de memoria ...................................................................................................... 381 Tabla de interrupciones del sistema .......................................................................... 383 Tabla de variables de la BIOS ................................................................................... 385 Puertos de E/S ........................................................................................................... 389 Cdigos de rastreo del teclado .................................................................................. 391 Tamaos y tiempos de ejecucin de las instrucciones ............................................. 393 Seales del slot de expansin ISA ............................................................................ 399 Funciones del sistema, la BIOS y el DOS aludidas en este libro.............................. 401 Especificaciones XMS y EMS: Todas sus funciones ................................................ 423 Juego de caracteres ASCII extendido ....................................................................... 427 Bibliografa ................................................................................................................. 429

5

EL UNIVERSO DIGITAL DEL IBM PC, AT Y PS/2

PRLOGO DE LA EDICIN 4.0 ELECTRNICA

10

PRLOGODE LA EDICIN 4.0 ELECTRNICA*(*) http://www.gui.uva.es/udigital

Nota:Pudiendo haber discrepancias entre sucesivas ediciones de estas normas, la versin de referencia vlida e inapelable ser la ubicada en todo momento en la red, en la direccin electrnica arriba indicada o cualquier otra que pudiera sucederla.

Licencia de uso y distribucin para particulares. La edicin 4.0 (4 edicin) de El Universo Digital del IBM PC, AT y PS/2 es un libro electrnico/impreso de dominio pblico; de libre uso, difusin, copia y distribucin entre particulares, en cualquier soporte. Quienes decidan utilizarlo debern registrarse por va electrnica una sola vez, por razones de tica (http://www.gui.uva.es/udigital). Tambin es posible hacerlo enviando una carta o postal ordinaria (mejor en un sobre) al autor, con cualquier texto, a la siguiente direccin: Ciriaco Garca de Celis Apartado 6105 47080 Valladolid Espaa Indicando claramente que el motivo es registrar el Universo Digital. Los que hayan comprado la versin impresa en persona no necesitan registrarse, aunque lo recibira con agrado, incluso si ha pasado bastante tiempo (pero si lo compraron por correo no deben registrarse: conservo su pedido). Me gustara conocer en alguna medida la difusin de la obra, en especial a partir de este momento, lo que hasta ahora me resultaba algo ms sencillo. Por supuesto, los datos o direcciones indicadas por los usuarios nunca sern divulgados por m. Licencia de uso para empresas, asociaciones y organizaciones.

10

EL UNIVERSO DIGITAL DEL IBM PC, AT Y PS/2

Se aplican exactamente las mismas condiciones que para usuarios particulares, con la excepcin de que se recomienda un nico registro electrnico o una sola carta o postal en representacin de todos los posibles usuarios de la entidad. Licencia de distribucin para empresas, asociaciones y organizaciones. Editando revistas (no libros) la distribucin est permitida en cualquier formato digital (HTML, PostScript, WordPerfect, texto, o cualesquiera otros) tanto en fragmentos como toda la obra completa. Siendo el formato una revista impresa slo se permiten fragmentos que no totalicen ms del 75% de la obra en los sucesivos nmeros publicados. Es necesario citar la procedencia. La distribucin por empresas que cobren una cierta cantidad por el soporte es libre. Mi nica sugerencia es que la empresa me enve una copia del soporte (CD, etc.) en que se publique, por cortesa. Tratndose de empresas editoriales u otras cualesquiera que planeen incluirlo, entero o por fragmentos, en el soporte impreso, electrnico u online de algn libro que vayan a publicar, deberan contactar primero conmigo para negociar una nueva versin (que en todo caso no implicara la desaparicin de sta en su estatus actual). Modificaciones. La realizacin de cambios (aadidos, eliminacin de contenidos o reemplazamiento de los mismos) es competencia exclusiva del autor, que centraliza la generacin de nuevas versiones actualizadas. Quien realizara alguna modificacin sin consentimiento habra de destinar la obra resultante para uso personal e intransferible. Orgenes de El Universo Digital. El Universo Digital no naci tras una decisin premeditada. Su objetivo inicial fue dotar de un manual de apoyo al Curso de Lenguaje Ensamblador, que ofrece todos los aos la asociacin Grupo Universitario de Informtica de la Universidad de Valladolid, en el marco de unos Cursos de Introduccin a la Informtica -para los alumnos y personal en general de la Universidad- que abarcan un espectro mucho ms amplio que el de la programacin de los ordenadores. La primera versin ocupaba 116 pginas, cuando su denominacin era an la de Curso de Ensamblador. Sin embargo, en una poca en la que era difcil encontrar informacin, y buena bibliografa especializada, el autor sigui recopilando material interesante y aadindolo al curso. Una buena parte de dicho material y del aadido despus ha sido adems de cosecha propia. La primera edicin de El Universo Digital, editada no mucho tiempo despus del manual del curso, rebas ligeramente las 300 pginas. Posteriormente se incrementara an algo ms, hasta las 420 de la 3 edicin que ha mantenido durante la mayor parte del tiempo.

El DOS en la actualidad. Actualmente, y desde hace algn tiempo, la programacin en DOS ya no es importante, y mucho menos al nivel que desarrolla este libro, y ello pese a que incluso Windows 95 corre an en

PRLOGO DE LA EDICIN 4.0 ELECTRNICA

10

alguna parte sobre DOS, comportamiento que ir reducindose hasta la eliminacin en prximas versiones. El futuro de la programacin, sin embargo, no es slo para los programadores de alto nivel. En alguna manera, los propios usuarios pueden y podrn cada vez en mayor medida hacer sus propios programas incluso sin darse cuenta. Sin embargo, siempre hay alguien que tiene que construir los sistemas operativos, y sobre todo, los controladores para dar soporte a los dispositivos en los diversos sistemas operativos. Por no mencionar las aplicaciones especializadas, desde mquinas industriales al microprocesador de las sondas espaciales (que, evidentemente, no corre bajo Windows). Es para los programadores de sistemas, y para aquellos que necesitan o quieren saber cmo funciona el PC por dentro, como ejemplo prctico de arquitectura interna de un ordenador, para los que va destinado este libro. Que podrn practicar en un entorno cmodo para este tipo de programacin, como es el DOS (que deja todo el control de la mquina a cada tarea). Aunque algunos contenidos muy relacionados con el DOS siguen presentes en esta obra, el lector habr de tener en cuenta si es pertinente profundizar en ellos o no, en la poca que vivimos. Mis contactos con editoriales. Mi objetivo inicial no fue publicarlo, aunque hace dos o tres aos s me lo plante un poco en serio. Las ventajas de una edicin oficial sera su no engorrosa distribucin (uno de los motivos por los que siempre ha costado poco es porque nuestra Asociacin y el propio autor ha puesto su mano de obra gratis), as como su mayor difusin. Puesto en contacto con cuatro prestigiosas editoriales; las que han respondido han valorado muy positivamente la obra, sin embargo la han rechazado aduciendo otros motivos (sobrecarga del programa editorial, solapamiento en contenidos con obras publicadas o en fase de publicacin, o simplemente falta de inters comercial). Una de ellas an no ha respondido. Los inconvenientes de su publicacin por una editorial seran el importante aumento de precio, y mi renuncia a los derechos de distribucin (en particular, nuestra Asociacin tendra que comprar en la librera los ejemplares para nuestros cursos). Sin embargo, la ventaja de la publicacin para facilitar la difusin popular es obvia, mxime si lo hace una editorial importante (si no, no aparecera en todas las estanteras, la publicidad la haran los lectores lentamente, como ya se vena haciendo, y la distribucin sera incluso ms limitada pese al recurso a los baratos servicios de reprografa por parte de los usuarios). El Universo Digital en Internet. Mi decisin final ya la haba acariciado con anterioridad. Algo haba que hacer, pues la distribucin gratuita del libro llevaba mucho tiempo. Uno de los motivos que han terminado empujndome a esta decisin, ha sido la considerable cantidad de pedidos que hemos recibido desde pases de hispanoamrica. Se trata de ciudadanos que conocen el ndice del libro a travs del Web y lo piden, sobre todo desde Mxico. Sin embargo, slo en la primera ocasin lo he enviado (a Per); los motivos son, desgraciadamente, la prctica imposibilidad de comerciar a pequea escala con esos pases (no existe el envo contrarreembolso, por ejemplo); las enormes demoras del envo por superficie (el coste del envo areo supera el del propio libro) y las

10

EL UNIVERSO DIGITAL DEL IBM PC, AT Y PS/2

complicadas gestiones de pago e injustas comisiones bancarias (aunque las pague el usuario final); finalmente habra que aadir incluso mi temor inconsciente a un aumento incontrolado de la demanda, cuando ya haba demasiado trabajo que hacer para atender la de origen nacional (en mi memoria estaba lo que ocurri cuando empezaron a aparecer mensajes y comenzaron a recibirse pedidos por FidoNET). Pido desde aqu disculpas a todos los que lo han solicitado desde fuera de Espaa, mayores adems si no he contestado el E-Mail por no haber tomado an una decisin al respecto. El Universo Digital de dominio pblico en formato electrnico, podr ser accedido desde cualquier lugar del mundo, y en cualquier CD de los kioscos. El inconveniente es que no todos tienen igual acceso a estas redes y medios, aunque ese inconveniente disminuir exponencialmente con el tiempo (con el mismo exponente con que crezca la red). Fin de la distribucin impresa. Naturalmente, una vez que he renunciado a mis derechos sobre el libro, donndolo al dominio pblico, ya no estoy obligado a venderlo impreso (medida tomada nicamente para mantener el copyright). Realmente, no tenemos tiempo ni medios para atender la demanda actual: aunque es una medida dura de imponer, lamento renunciar a realizar ms envos de ejemplares impresos. Renuncio con ello a facilitar su difusin a los lectores menos introducidos en las redes telemticas, pero beneficio a otros muchos, que adems podrn seguir usando la versin manuscrita utilizando una impresora. Por otro lado, haber facturado slo aproximadamente el coste de impresin y distribucin, me permiten tomar esa decisin sin temer el enfado de quienes lo haban comprado. El coste de impresin de los ltimos nmeros en la reprografa oficial de la Universidad (rechazamos opciones ms baratas de menor calidad), encuadernacin y disquete era de 1900 pts. El libro (realmente, apuntes tcnicos fotocopiados) se venda a 2100 pts ms gastos de envo. Ese margen de beneficios era ms bien de maniobra, ya que por ejemplo, en los ejemplares que no llegaban a su destino, el coste del envo y la devolucin lo pagbamos nosotros. Cada envo llevaba una media de 20 minutos de tiempo total de mano de obra, contabilizando la preparacin de los libros (transporte fsico, disquete, gestin del pedido...), y la mayora eran de una sola unidad (pese a que se penalizaba su envo con 100 pts adicionales). El precio de los ms de 1200 Universos Digitales vendidos ha tenido un crecimiento nominal cero en los cinco aos de difusin impresa. Obtencin de ejemplares impresos. Aunque en general no se harn ms envos, la nica excepcin corresponder a los pedidos realizados desde bibliotecas (universitarias o no universitarias), que tal vez no tengan la impresora adecuada o tiempo para reproducirlo, lo que perjudicara a un amplio conjunto potencial de usuarios. No se harn envos a otras organizaciones, ni a libreras o a particulares. Subrayamos que El Universo Digital impreso tiene el carcter legal de apuntes tcnicos impresos y no de libro. Los pedidos de ejemplares impresos sern admitidos slo desde Espaa. Habrn de realizarse exclusivamente por carta impresa, que deber estar compulsada por el sello y en su caso papel oficial de la biblioteca que hace el pedido, adems de debidamente firmada por quien corresponda. Es conveniente que figure el telfono de la biblioteca o en su defecto de la conserjera del centro. Adems del nombre completo, direccin y NIF. Nos reservamos el derecho de rechazar aquellos pedidos que no cumplan alguno de estos requisitos, o los de sospechosa procedencia. La direccin es: Grupo

PRLOGO DE LA EDICIN 4.0 ELECTRNICA

10

Universitario de Informtica. Apartado 6062. 47080 Valladolid. El precio por ejemplar ser el que figure en la factura que realizar el propio servicio de reprografa (unas 2000 pts/unidad); sumando al final el coste exacto del envo y los disquetes. Agradecimientos. Agradezco desde aqu al servicio de Reprografa de la Universidad, ubicado en la Casa del Estudiante, el esmero puesto durante tanto tiempo en la reproduccin y encuadernacin de cada nmero durante la etapa impresa. Cualquier pequeo problema de calidad se ha debido siempre a los fallos inevitables que en ocasiones presenta toda mquina, por buena que sea. Mis agradecimientos tambin a las diversas instituciones de la Universidad de Valladolid, que han recibido en ocasin la presin de la demanda a travs de incorrectas llamadas telefnicas solicitando el libro, no siendo ellos los encargados de su distribucin; tambin al Grupo Universitario de Informtica, por su colaboracin a todos los niveles. No puedo decir lo mismo de los funcionarios de Correos: aunque algunos son amables, en general, el funcionamiento de esa institucin es el que caba esperar de un monopolio no sometido a la libre competencia en envos postales ordinarios (y que, por tanto, no tiene la obligacin de tratar bien a sus clientes, porque tambin volvern maana). El trato que reciben los clientes no se diferencia mucho del de los paquetes, y estos son muy expresivos en ocasiones al llegar al destino. Por otro lado, la cantidad de papeles que hay que rellenar en cada envo, y algunas normas de la empresa (como el plomo adherido a los paquetes postales) no se han simplificado desde finales del siglo XIX. Tampoco es comprensible que slo Argentaria sea an la nica entidad financiera con el privilegio de gestionar las denominadas Cuentas Corrientes Postales. Adems de que el servicio de correos es caro en la realidad (esto es, cuando se incluye lo que pagamos en impuestos para cubrir las prdidas de la compaa) se mantiene el viejo vicio de indexar las tarifas anuales (aumento del 8% en 1997, cuando hay un 2% de inflacin nacional). Sin embargo, he de reconocer que la fiabilidad de Correos (entendida en cuanto a paquetes que llegan a su destino o en su defecto vuelven por motivo de direccin incorrecta) es prxima al 100%: los envos no suelen perderse, al menos los de los reembolsos. En puntualidad, aunque hay extremos de gran aleatoriedad (desde paquetes que llegan en tres das a un pueblo perdido en la otra punta del pas, a los que tardan quince en ir de Valladolid a Madrid) el tiempo promedio podra aproximarse, aunque por debajo, a lo que afirma la empresa. Ciriaco Garca de Celis Valladolid, Noviembre de 1997

PRLOGODE LA TERCERA EDICIN (1994)

Ha pasado un ao desde la publicacin de la primera edicin de esta obra. Desde entonces, ha continuado la expansin de los interfaces grficos de usuario y los sistemas operativos avanzados para PC. Sin embargo, pese a que la programacin contina alejndose cada vez ms del bajo nivel de las mquinas, los programadores de sistemas en el entorno del PC siguen existiendo y son muchos ms que los que trabajan para las empresas punteras en el desarrollo de los sistemas operativos. Los ordenadores compatibles poseen numerosas aplicaciones en el campo industrial, para las que es conveniente un conocimiento elevado del funcionamiento interno del ordenador en general y del MS-DOS en particular. Para aquellas personas que necesitan comprender el funcionamiento de un ordenador, las mquinas compatibles constituyen una interesante oportunidad y punto de partida. Este libro pretende cubrir una importante laguna en la bibliografa disponible actualmente sobre la programacin a nivel de sistemas de los ordenadores compatibles. Respecto a la primera edicin, se han incrementado los contenidos en una proporcin equivalente al 20% de lo que ya exista, corrigindose adems algunos errores. Aunque el libro comience con una introduccin a la aritmtica binaria que pueda indicar todo lo contrario, se presupone que el lector tiene unos mnimos conocimientos de informtica, al menos un dominio bsico del sistema operativo MS-DOS, siendo ms que recomendable conocer algn lenguaje de programacin. Seguidamente se explica el lenguaje ensamblador de la serie 80x86 de Intel separando claramente las instrucciones de los diversos procesadores, aunque dejando de lado algunas instrucciones del 286 y 386 que se salen del entorno MS-DOS. Tambin se describe la sintaxis del lenguaje ensamblador; sin embargo, aunque este ltimo aspecto est extensamente documentado, los lectores que no conozcan el lenguaje ensamblador de ningn microprocesador habrn de trabajar considerablemente leyendo multitud de listados hasta adquirir la soltura necesaria y, sobre todo, creando los suyos propios. Aunque sera conveniente describir el lenguaje C, ntimo aliado del ensamblador en la programacin de sistemas, ello se deja por razones de espacio para otras publicaciones. El libro describe con profundidad la arquitectura de los ordenadores compatibles, de manera especial en lo referente a la organizacin interna de la memoria (actualizada hasta el MS-DOS 6.0 y el DR-DOS 6.0), los discos y el teclado. El apartado de los grficos se repasa slo superficialmente, ya que por s solo necesitara de un buen libro ms grueso que este. Se dan pistas sobre la manera de conmutar los modos de vdeo sin alterar el contenido de la pantalla, aspecto que resulta de especial

PRLOGO DE LA TERCERA EDICIN (1994)

16

inters para los programas residentes. Las memorias extendida XMS y expandida EMS son descritas con cierto detenimiento, dada su presencia en todos los ordenadores modernos y su importancia. Existen apndices que describen todas las funciones del DOS, de la BIOS y del sistema usadas en las rutinas y programas desarrollados, as como la totalidad de las funciones XMS y EMS. Sin embargo, no estn ni muchsimo menos todas las interrupciones necesarias, por lo que se insta al lector a conseguir el impresionante fichero de dominio pblico INTERRUPT.LST, complemento ideal de este libro (ver bibliografa). Los programas residentes reciben un tratamiento especialmente profundo: desde los mtodos ms eficientes para que detecten su propia presencia en memoria, a las tcnicas ms avanzadas para economizar memoria, pasando por el uso de funciones del DOS de manera concurrente al programa principal, as como tcnicas de empleo de memoria extendida y superior para conseguir programas que usen 0 Kb dentro de los primeros 640 Kb de la mquina y todo ello sin olvidar la convivencia con los actuales entornos operativos, como Windows, y la posibilidad de ser activados desde pantallas grficas. Este libro tambin trata los controladores de dispositivo o device drivers, desde los dos posibles enfoques de su uso: bien sea la creacin de controladores de dispositivo de caracteres, bien la de nuevas unidades de disco aadidas a las del sistema; en ambos casos se incluyen ejemplos reales de controladores completos y comprobados, en particular el ejemplo de disco virtual: un completo ejemplo de controlador redimensionable que soporta memoria convencional, XMS y EMS. Existe un captulo muy prximo al hardware en el que se describen a fondo y sin omisiones todos los chips del ordenador, para permitir al programador de sistemas un control completo del equipo. Para asimilar este captulo hace falta cierta formacin previa en los sistemas digitales; sin embargo, los ejemplos que siguen a la informacin tcnica aclaran las explicaciones previas y pueden ser aprovechados de manera inmediata incluso sin entender todo lo anterior. Los chips de apoyo al microprocesador son descritos de manera total: primero, no relacionados con el PC sino como tales circuitos; despus integrndolos en el ordenador y documentando profusamente su uso, con ejemplos probados. Se consideran el interfaz de perifricos 8255 (til para averiguar la configuracin de los PC/XT), el temporizador 8253/8254 (para temporizacin y sntesis de sonido), el controlador de interrupciones 8259, el controlador de DMA 8237 (para acceso a disco), el controlador de disquetes 765 (acceso directo a los sectores), la controladora de disco duro de los AT (IDE, MFM Bus Local); el controlador del teclado del AT (8042); el UART 8250 (empleado en las comunicaciones serie) y el reloj de tiempo real MC146818 (configuracin de AT y programacin de alarmas y temporizaciones). Los ejemplos en este captulo experimentan una importante potenciacin respecto a la edicin anterior; en particular, en lo relacionado con el controlador de disquetes se puede considerar que la informacin vertida es prcticamente casi toda la existente, existiendo pautas suficientes para que el lector cree sus propios programas copiones, protecciones de disco, formatos de alta capacidad, etc. Existen tambin captulos que describen el funcionamiento y programacin de la impresora; sin entrar en aspectos particulares relativos a los modelos de las diversas marcas, s se suministra informacin comn a todas. Tambin se comenta en un captulo el funcionamiento al ms bajo nivel del ratn, aspecto que habitualmente no suele ser considerado. Dada la importancia del lenguaje C en la programacin en general y en la programacin de sistemas en particular, tanto en la actualidad como durante los prximos aos, se incluye un captulo que describe la manera de comunicar el ensamblador con el lenguaje C, con objeto de superar las limitaciones de este lenguaje en los puntos crticos de la programacin de sistemas. Este captulo

16

EL UNIVERSO DIGITAL DEL IBM PC, AT Y PS/2

requiere un dominio elemental del lenguaje C por parte del lector, aunque probablemente slo sea til para aquellos que lo conocen ms o menos. Resumiendo, el libro pretende reunir en una sola obra la mayora de la informacin necesaria para el programador de sistemas, exponiendo toda la informacin y no slo lo imprescindible, sin olvidos ni omisiones; tambin se pretende explicar las tcnicas ms avanzadas de creacin de programas residentes. Este afn de informacin completa es el responsable del ttulo del libro. Todos los listados de ejemplo se suponen de dominio pblico y las rutinas pueden ser incluidas por los lectores libremente en sus propios programas, aunque en el caso de los programas completos debe citarse la procedencia y dejar bien claro en las versiones modificadas quin las ha alterado. En todo caso, pese a que todas las rutinas y programas han sido probados debidamente en un 8088, un 286, un 386 o un 486 -bajo varios sistemas operativos y con diferentes configuraciones del hardware- el autor del libro no se responsabiliza de su correcto funcionamiento en todas las circunstancias.

INTRODUCCIN

21

Captulo I: INTRODUCCIN

1.1. - NUMEROS BINARIOS, OCTALES Y HEXADECIMALES. El sistema de numeracin utilizado habitualmente es la base 10; es decir, consta de 10 dgitos (0-9) que podemos colocar en grupos, ordenados de izquierda a derecha y de mayor a menor. Cada posicin tiene un valor o peso de 10n donde n representa el lugar contado por la derecha: 1357 = 1 x 103 + 3 x 102 + 5 x 101 + 7 x 100 Explcitamente, se indica la base de numeracin como 135710. En un ordenador el sistema de numeracin es binario -en base 2, utilizando el 0 y el 1- hecho propiciado por ser precisamente dos los estados estables en los dispositivos digitales que componen una computadora. Anlogamente a la base 10, cada posicin tiene un valor de 2n donde n es la posicin contando desde la derecha y empezando por 0: 1012 = 1 x 22 + 0 x 21 + 1 x 20 Adems, por su importancia y utilidad, es necesario conocer otros sistemas de numeracin como pueden ser el octal (base 8) y el hexadecimal (base 16). En este ltimo tenemos, adems de los nmeros del 0 al 9, letras -normalmente en maysculas- de la A a la F. Llegar a un nmero en estos sistemas desde base 2 es realmente sencillo si agrupamos las cifras binarias de 3 en 3 (octal) o de 4 en 4 (hexadecimal): Base 2 a base 8: 101 0112 = 538 Base 2 a base 16: 0010 10112 = 2B16 A la inversa, basta convertir cada dgito octal o hexadecimal en binario: Base 8 a base 2: 248 = 010 1002 Base 16 a base 2: 2416 = 0010 01002 De ahora en adelante, se utilizarn una serie de sufijos para determinar el sistema de numeracin empleado: Sufijo Base Ejemplos b 2 01101010b o,q 8 175o d 10 789d h 16 6A5h

En caso de que no aparezca el sufijo, el nmero se considera decimal; es decir, en base 10.

21

EL UNIVERSO DIGITAL DEL IBM PC, AT Y PS/2

1.2. - CAMBIO DE BASE. Pese a que las conversiones entre base 2 y base 8 y 16 son prcticamente directas, existe un sistema general para realizar el cambio de una base a otra. El paso de cualquier base a base 10 lo vimos antes: 6A5h = 6 x 16 + 10 x 16 + 5 x 162 1 0

Inversamente, si queremos pasar de base 10 a cualquier otra habr que realizar sucesivas divisiones por la base y tomar los restos:1234 114 2 16 77 16 4 13

1234d = 4D2h

donde 4 es el ltimo cociente (menor que la base) y los restantes dgitos son los restos en orden inverso. 1.3. - ESTRUCTURA ELEMENTAL DE LA MEMORIA. 1.3.1. - BIT. Toda la memoria del ordenador se compone de dispositivos electrnicos que pueden adoptar nicamente dos estados, que representamos matemticamente por 0 y 1. Cualquiera de estas unidades de informacin se denomina BIT, contraccin de binary digit en ingls. 1.3.2. - BYTE. Cada grupo de 8 bits se conoce como byte u octeto. Es la unidad de almacenamiento en memoria, la cual est constituida por un elevado nmero de posiciones que almacenan bytes. La cantidad de memoria de que dispone un sistema se mide en Kilobytes (1 Kb = 1024 bytes), en Megabytes (1 Mb = 1024 Kb), Gigabytes (1 Gb = 1024 Mb), Terabytes (1 Tb = 1024 Gb) o Petabytes (1 Pb = 1024 Tb). Los bits en un byte se numeran de derecha a izquierda y de 0 a 7, correspondiendo con los exponentes de las potencias de 2 que reflejan el valor de cada posicin. Un byte nos permite, por tanto, representar 256 estados (de 0 a 255) segn la combinacin de bits que tomemos. 1.3.3. - NIBBLE. Cada grupo de cuatro bits de un byte constituye un nibble, de forma que los dos nibbles de un byte se llaman nibble superior (el compuesto por los bits 4 a 7) e inferior (el compuesto por los bits 0 a 3). El nibble tiene gran utilidad debido a que cada uno almacena un dgito hexadecimal: Binario Hex. Decimal Binario Hex. Decimal 0000 0 0 1000 8 8 0001 1 1 1001 9 9 0010 2 2 1010 A 10 0011 3 3 1011 B 11 0100 4 4 1100 C 12 0101 5 5 1101 D 13

INTRODUCCIN

21

0110 6 6 1110 E 14 0111 7 7 1111 F 15

1.4. - OPERACIONES ARITMTICAS SENCILLAS EN BINARIO. Para sumar nmeros, tanto en base 2 como hexadecimal, se sigue el mismo proceso que en base 10:Podemos observar que la suma se desarrolla de la forma tradicional; es decir: sumamos normalmente, salvo en el caso de 1 + 1 = 102 , en cuyo caso tenemos un acarreo de 1 (lo que nos llevamos).

1010 1010b + 0011 1100b 1110 0110b

1.5. - COMPLEMENTO A DOS. En general, se define como valor negativo de un nmero el que necesitamos sumarlo para obtener 00h, por ejemplo:FFh + 01h 100h Como en un byte solo tenemos dos nibbles, es decir, dos dgitos hexadecimales, el resultado es 0 (observar cmo el 1 ms significativo subrayado es ignorado). Luego FFh=-1. Normalmente, el bit 7 se considera como de signo y, si est activo (a 1) el nmero es negativo.

Por esta razn, el nmero 80h, cuyo complemento a dos es l mismo, se considera negativo (-128) y el nmero 00h, positivo. En general, para hallar el complemento a dos de un nmero cualquiera basta con calcular primero su complemento a uno, que consiste en cambiar los unos por ceros y los ceros por unos en su notacin binaria; a continuacin se le suma una unidad para calcular el complemento a dos. Con una calculadora, la n operacin es ms sencilla: el complemento a dos de un nmero A de n bits es 2 -A. Otro factor a considerar es cuando se pasa de operar con un nmero de cierto tamao (ej., 8 bits) a otro mayor (pongamos de 16 bits). Si el nmero es positivo, la parte que se aade por la izquierda son bits a 0. Sin embargo, si era negativo (bit ms significativo activo) la parte que se aade por la izquierda son bits a 1. Este fenmeno, en cuya demostracin matemtica no entraremos, se puede resumir en que el bit ms significativo se copia en todos los aadidos: es lo que se denomina la extensin del signo: los dos siguientes nmeros son realmente el mismo nmero (el -310): 11012 (4 bits) y 111111012 (8 bits). 1.6. - AGRUPACIONES DE BYTES. Tipo Definicin Palabra 2 bytes contiguos Doble palabra 2 palabras contiguas (4 bytes) Cudruple palabra 4 palabras contiguas (8 bytes) Prrafo 16 bytes Pgina 256 bytes, 16 Kb, etc. Segmento 64 Kbytes

1.7. - REPRESENTACIN DE LOS DATOS EN MEMORIA. 1.7.1. - NUMEROS BINARIOS: mximo nmero representable:

21

EL UNIVERSO DIGITAL DEL IBM PC, AT Y PS/2

Tipo Sin signo 1 byte 255 2 bytes 65.535 4 bytes 4.294.967.295 8 bytes 18.446.744.073.709.551.615 Tipo Positivo Negativo 1 byte 127 -128 2 bytes 32.767 -32.768 4 bytes 2.147.483.647 -2.147.483.648 8 bytes 9.223.372.036.854.775.807 -9.223.372.036.854.775.808

Los nmeros binarios de ms de un byte se almacenan en la memoria en los procesadores de Intel en orden inverso: 01234567h se almacenara: 67h, 45h, 23h, 01h. 1.7.2. - NUMEROS BINARIOS CODIFICADOS EN DECIMAL (BCD). Consiste en emplear cuatro bits para codificar los dgitos del 0 al 9 (desperdiciando las seis combinaciones que van de la 1010 a la 1111). La ventaja es la simplicidad de conversin a/de base 10, que resulta inmediata. Los nmeros BCD pueden almacenarse desempaquetados, en cuyo caso cada byte contiene un dgito BCD (Binary-Coded Decimal); o empaquetados, almacenando dos dgitos por byte (para construir los nmeros que van del 00 al 99). La notacin BCD ocupa cuatro bits -un nibble- por cifra, de forma que en el formato desempaquetado el nibble superior siempre es 0. 1.7.3. - NUMEROS EN PUNTO FLOTANTE. Son grupos de bytes en los que una parte se emplea para guardar las cifras del nmero (mantisa) y otra para indicar la posicin del punto flotante (exponente), de modo equivalente a la notacin cientfica. Esto permite trabajar con nmeros de muy elevado tamao -segn el exponente- y con una mayor o menor precisin en funcin de los bits empleados para codificar la mantisa. 1.7.4. - CDIGO ASCII. El cdigo A.S.C.I.I. (American Standard Code for Information Interchange) es un convenio adoptado para asignar a cada carcter un valor numrico; su origen est en los comienzos de la Informtica tomando como muestra algunos cdigos de la transmisin de informacin de radioteletipo. Se trata de un cdigo de 7 bits con capacidad para 128 smbolos que incluyen todos los caracteres alfanumricos del ingls, con smbolos de puntuacin y algunos caracteres de control de la transmisin. Con posterioridad, con la aparicin de los microordenadores y la gran expansin entre ellos de los IBM-PC y compatibles, la ampliacin del cdigo ASCII realizada por esta marca a 8 bits, con capacidad para 128 smbolos adicionales, experimenta un considerable auge, siendo en la actualidad muy utilizada y recibiendo la denominacin oficial de pgina de cdigos 437 (EEUU). Se puede consultar al final de este libro. Es habitualmente la nica pgina soportada por las BIOS de los PC. Para ciertas nacionalidades se han diseado otras pginas especficas que requieren de un software externo. En las lenguas del estado espaol y en las de la mayora de los dems pases de la UE, esta tabla cubre todas las necesidades del idioma. 1.8. - OPERACIONES LGICAS EN BINARIO.

INTRODUCCIN

21

Se realizan a nivel de bit y pueden ser de uno o dos operandos: x NOT (x) 0 1 1 0 x y x AND y x OR y x XOR y 0 0 0 0 0 0 1 0 1 1 1 0 0 1 1 1 1 1 1 0

ARQUITECTURA E HISTORIA DE LOS MICROORDENADORES

25

Captulo II: ARQUITECTURA E HISTORIA DE LOS MICROORDENADORES

El ensamblador es un lenguaje de programacin que, por la traduccin directa de los mnemnicos a instrucciones maquina, permite realizar aplicaciones rpidas, solucionando situaciones en las que los tiempos de ejecucin constituye el factor principal para que el proceso discurra con la suficiente fluidez. Esta situacin, que indudablemente s influye sobre la eleccin del lenguaje de programacin a utilizar en el desarrollo de una determinada rutina, y dada la aparicin de nuevos compiladores de lenguajes de alto nivel que optimizan el cdigo generado a niveles muy prximos a los que un buen programador es capaz de realizar en ensamblador, no es la nica razn para su utilizacin. Es sobradamente conocido que los actuales sistemas operativos son programados en su mayor parte en lenguajes de alto nivel, especialmente C, pero siempre hay una parte en la que el ensamblador se hace casi insustituible bajo DOS y es la programacin de los drivers para los controladores de dispositivos, relacionados con las tareas de ms bajo nivel de una mquina, fundamentalmente las operaciones de entrada/salida en las que es preciso actuar directamente sobre los dems chips que acompaan al microprocesador. Por ello y porque las instrucciones del lenguaje ensamblador estn ntimamente ligadas a la mquina, vamos a realizar primero un somero repaso a la arquitectura interna de un microordenador. 2.1. - ARQUITECTURA VON NEWMAN. Centrndonos en los ordenadores sobre los que vamos a trabajar desarrollar a grandes rasgos la arquitectura Von Newman que, si bien no es la primera en aparecer, s que lo hizo prcticamente desde el comienzo de los ordenadores y se sigue desarrollando actualmente. Claro es que est siendo desplazada por otra que permiten una mayor velocidad de proceso, la RISC. En los primeros tiempos de los ordenadores, con sistemas de numeracin decimal, una electrnica sumamente complicada muy susceptible a fallos y un sistema de programacin cableado o mediante fichas, Von Newman propuso dos conceptos bsicos que revolucionaran la incipiente informtica: a) La utilizacin del sistema de numeracin binario. Simplificaba enormemente los problemas que la implementacin electrnica de las operaciones y funciones lgicas planteaban, a la vez proporcionaba una mayor inmunidad a los fallos (electrnica digital). Almacenamiento de la secuencia de instrucciones de que consta el programa en una memoria interna, fcilmente accesible, junto con los datos que referencia. De este forma la velocidad de proceso experimenta un considerable incremento; recordemos que anteriormente una instruccin o un dato estaban codificados en una ficha en el mejor de los casos.

b)

Tomando como modelo las mquinas que aparecieron incorporando las anteriores caractersticas, el ordenador se puede considerar compuesto por las siguientes partes: - La Unidad Central de Proceso, U.C.P., ms conocida por sus siglas en ingls (CPU). - La Memoria Interna, MI. - Unidad de Entrada y Salida, E/S. - Memoria masiva Externa, ME. Realicemos a continuacin una descripcin de lo que se entiende por cada una de estas partes y cmo

25

EL UNIVERSO DIGITAL DEL IBM PC, AT Y PS/2

estn relacionadas entre si: - La Unidad Central de Proceso (CPU) viene a ser el cerebro del ordenador y tiene por misin efectuar las operaciones aritmtico-lgicas y controlar las transferencias de informacin a realizar. - La Memoria Interna (MI) contiene el conjunto de instrucciones que ejecuta la CPU en el transcurso de un programa. Es tambin donde se almacenan temporalmente las variables del mismo, todos los datos que se precisan y todos los resultados que devuelve. - Unidades de entrada y salida (E/S) o Input/Output (I/O): son las encargadas de la comunicacin de la mquina con el exterior, proporcionando al operador una forma de introducir al ordenador tanto los programas como los datos y obtener los resultados. Como es de suponer, estas tres partes principales de que consta el ordenador deben estar ntimamente conectadas; aparece en este momento el concepto de bus: el bus es un conjunto de lneas que enlazan los distintos componentes del ordenador, por ellas se realiza la transferencia de datos entre todos sus elementos. Se distinguen tres tipos de bus: - De control: forman parte de l las lneas que seleccionan desde dnde y hacia dnde va dirigida la informacin, tambin las que marcan la secuencia de los pasos a seguir para dicha transferencia. - De datos: por l, de forma bidireccional, fluyen los datos entre las distintas partes del ordenador. - De direcciones: como vimos, la memoria est dividida en pequeas unidades de almacenamiento que contienen las instrucciones del programa y los datos. El bus de direcciones consta de un conjunto de lneas que permite seleccionar de qu posicin de la memoria se quiere leer su contenido. Tambin direcciona los puertos de E/S. La forma de operar del ordenador en su conjunto es direccionar una posicin de la memoria en busca de una instruccin mediante el bus de direcciones, llevar la instruccin a la unidad central de proceso -CPU- por medio del bus de datos, marcando la secuencia de la transferencia el bus de control. En la CPU la instruccin se decodifica, interpretando qu operandos necesita: si son de memoria, es necesario llevarles a la CPU; una vez que la operacin es realizada, si es preciso se devuelve el resultado a la memoria. 2.2. - EL MICROPROCESADOR. Un salto importante en la evolucin de los ordenadores lo introdujo el microprocesador: se trata de una unidad central de proceso contenida totalmente en un circuito integrado. Comenzaba as la gran carrera en busca de lo ms rpido, ms pequeo; rpidamente el mundo del ordenador empez a ser accesible a pequeas empresas e incluso a nivel domstico: es el boom de los microordenadores personales. Aunque cuando entremos en la descripcin de los microprocesadores objeto de nuestro estudio lo ampliaremos, har un pequeo comentario de las partes del microprocesador: - Unidad aritmtico-lgica: Es donde se efectan las operaciones aritmticas (suma, resta, y a veces producto y divisin) y lgicas (and, or, not, etc.). - Decodificador de instrucciones: All se interpretan las instrucciones que van llegando y que componen el programa. - Bloque de registros: Los registros son celdas de memoria en donde queda almacenado un dato temporalmente. Existe un registro especial llamado de indicadores, estado o flags, que refleja el estado operativo del microprocesador. - Bloque de control de buses internos y externos: supervisa todo el proceso de transferencias de informacin dentro del microprocesador y fuera de l. 2.3. - BREVE HISTORIA DEL ORDENADOR PERSONAL Y EL DOS.

ARQUITECTURA E HISTORIA DE LOS MICROORDENADORES

25

La trepidante evolucin del mundo informtico podra provocar que algn recin llegado a este libro no sepa exactamente qu diferencia a un ordenador "AT" del viejo "XT" inicial de IBM. Algunos trminos manejados en este libro podran ser desconocidos para los lectores ms jvenes. Por ello, haremos una pequea introduccin sobre la evolucin de los ordenadores personales, abarcando toda la historia (ya que no es muy larga).

La premonicin.En 1973, el centro de investigacin de Xerox en Palo Alto desarroll un equipo informtico con el aspecto externo de un PC personal actual. Adems de pantalla y teclado, dispona de un artefacto similar al ratn; en general, este aparato (denominado Alto) introdujo, mucho antes de que otros los reinventaran, algunos de los conceptos universalmente aceptados hoy en da. Sin embargo, la tecnologa del momento no permiti alcanzar todas las intenciones. Alguna innovacin, como la pantalla vertical, de formato similar a una hoja de papel (que desearan algunos actuales internautas para los navegadores) an no ha sido adoptada: nuestros PC's siguen pareciendo televisores con teclas, y los procesadores de textos no muestran legiblemente una hoja en vertical completa incluso en monitores de 20 pulgadas.

El microprocesador.El desarrollo del primer microprocesador por Intel en 1971, el 4004 (de 4 bits), supuso el primer paso hacia el logro de un PC personal, al reducir drsticamente la circuitera adicional necesaria. Sucesores de este procesador fueron el 8008 y el 8080, de 8 bits. Ed Roberts construy en 1975 el Altair 8800 basndose en el 8080; aunque esta mquina no tena teclado ni pantalla (slo interruptores y luces), era una arquitectura abierta (conocida por todo el mundo) y cuyas tarjetas se conectaban a la placa principal a travs de 100 terminales, que ms tarde terminaran convirtindose en el bus estndar S-100 de la industria. El Apple-I apareci en 1976, basado en el microprocesador de 8 bits 6502, en aquel entonces un recin aparecido aunque casi 10 veces ms barato que el 8080 de Intel. Fue sucedido en 1977 por el Apple-II. No olvidemos los rudimentos de la poca: el Apple-II tena un lmite mximo de 48 Kbytes de memoria. En el mismo ao, Commodore sac su PET con 8 Kbytes. Se utilizaban cintas de casete como almacenamiento, aunque comenzaron a aparecer las unidades de disquete de 5. Durante finales de los 70 aparecieron muchos otros ordenadores, fruto de la explosin inicial del microprocesador.

Los micros de los 80.En 1980, Sir Clive Sinclair lanz el ZX-80, seguido muy poco despus del ZX-81. Estaban basados en un microprocesador sucesor del 8085 de Intel: el Z80 (desarrollado por la empresa Zilog, creada por un ex-ingeniero de Intel). Commodore irrumpi con sus VIC-20 y, posteriormente, el Commodore 64, basados an en el 6502 y, este ltimo, con mejores posibilidades grficas y unos 64 Kb de memoria. Su competidor fue el ZX-Spectrum de Sinclair, tambin basado en el Z80, con un chip propio para gestin de grficos y otras tareas, la ULA, que permiti rebajar su coste y multiplic su difusin por europa, y en particular por Espaa. Sin embargo, todos los ordenadores domsticos de la poca, como se dieron en llamar, estaban basados en procesadores de 8 bits y tenan el lmite de 64 Kb de memoria. Los intentos de rebasar este lmite manteniendo an esos chips por parte de la plataforma MSX (supuesto estndar mundial con la misma suerte que ha corrido el Esperanto) o los CPC de Amstrad, de poco sirvieron.

El IBM PC.Y es que IBM tambin fabric su propio ordenador personal con vocacin profesional: el 12 de agosto de 1981 present el IBM PC. Estaba basado en el microprocesador 8088, de 16 bits, cuyas instrucciones sern las que usemos en este libro, ya que todos los procesadores posteriores son bsicamente (en MS-DOS) versiones mucho ms rpidas del mismo. El equipamiento de serie consista en 16 Kbytes de memoria ampliables a 64 en la placa base (y a 256 aadiendo tarjetas); el almacenamiento externo se haca en cintas de casete, aunque

25

EL UNIVERSO DIGITAL DEL IBM PC, AT Y PS/2

pronto aparecieron las unidades de disco de 5 pulgadas y simple cara (160/180 Kb por disco) o doble cara (320/360 Kb). En 1983 apareci el IBM PC-XT, que traa como novedad un disco duro de 10 Mbytes. Un ao ms tarde aparecera el IBM PC-AT, introduciendo el microprocesador 286, as como ranuras de expansin de 16 bits (el bus ISA de 16 bits) en contraposicin con las de 8 bits del PC y el XT (bus ISA de 8 bits), adems incorporaba un disco duro de 20 Mbytes y disquetes de 5 pero con 1.2 Mbytes. En general, todos los equipos con procesador 286 o superior pueden catalogarse dentro de la categora AT; el trmino XT hace referencia al 8088/8086 y similares. Finalmente, por PC (a secas) se entiende cualquiera de ambos; aunque si se hace distincin entre un PC y un AT en la misma frase, por PC se sobreentiende un XT, menos potente. El trmino PC ya digo, no obstante, es hoy en da mucho ms general, referenciando habitualmente a cualquier ordenador personal. Alrededor del PC se estaba construyendo un imperio de software ms importante que el propio hardware: estamos hablando del sistema operativo PC-DOS. Cuando aparecieron mquinas compatibles con el PC de IBM, tenan que respetar la compatibilidad con ese sistema, lo que fue sencillo (ya que Microsoft, le gustara o no a IBM, desarroll el MS-DOS, compatible con el PC-DOS pero que no requera la BIOS del ordenador original, cuyo copyright era de IBM). Incluso, el desarrollo de los microprocesadores posteriores ha estado totalmente condicionado por el MS-DOS. [Por cierto, la jugada del PC-DOS/MS-DOS se repetira en alguna manera pocos aos despus con el OS/2-Windows]. A partir de 1986, IBM fue paulatinamente dejando de tener la batuta del mercado del PC. La razn es que la propia IBM tena que respetar la compatibilidad con lo anterior, y en ese terreno no tena ms facilidades para innovar que la competencia. El primer problema vino con la aparicin de los procesadores 386: los dems fabricantes se adelantaron a IBM y lanzaron mquinas con ranuras de expansin an de 16 bits, que no permitan obtener todo el rendimiento. IBM desarroll demasiado tarde, en 1987, la arquitectura Microchannel, con bus de 32 bits pero cerrada e incompatible con tarjetas anteriores (aunque se desarrollaron nuevas tarjetas, eran caras) y la incluy en su gama de ordenadores PS/2 (alguno de cuyos modelos era an realmente ISA). La insolente respuesta de la competencia fue la arquitectura EISA, tambin de 32 bits pero compatible con la ISA anterior. Otro ejemplo: si IBM gobern los estndares grficos hasta la VGA, a partir de ah sucedi un fenmeno similar y los dems fabricantes se adelantaron a finales de los 80 con mejores tarjetas y ms baratas; sin embargo, se perdi la ventaja de la normalizacin (no hay dos tarjetas superiores a la VGA que funcionen igual). EISA tambin era caro, as que los fabricantes orientales, cruzada ya la barrera de los aos 90, desarrollaron con la norma VESA las placas con bus local (VESA Local Bus); bsicamente es una prolongacin de las patillas de la CPU a las ranuras de expansin, lo que permite tarjetas rpidas de 32 bits pero muy conflictivas entre s. Esta arquitectura de bus se populariz mucho con los procesadores 486. Sin embargo, al final el estndar que se ha impuesto ha sido el propuesto por el propio fabricante de las CPU: Intel, con su bus PCI, que con el Pentium se ha convertido finalmente en el nico estndar de bus de 32 bits. Estas mquinas an admiten no obstante las viejas tarjetas ISA, suficientes para algunas aplicaciones de baja velocidad (modems,... etc).

La evolucin del MS-DOS.Una manera sencilla de comprender la evolucin de los PC es observar la evolucin de las sucesivas versiones del DOS y los sistemas que le han sucedido. En 1979, Seatle Computer necesitaba apoyar de alguna manera a sus incipientes placas basadas en el 8086. Como Digital Research estaba tardando demasiado en convertir el CP/M-80 a CP/M-86, desarroll su propio sistema: el QDOS 0.1, que fue presentado en 1980. Antes de finales de ao apareci QDOS 0.3. Bill Gates, dueo de Microsoft, de momento slo posea una versin de lenguaje BASIC para 8086 no orientada a ningn sistema operativo particular, que le gust a algn directivo de IBM. Bill Gates ya haba

ARQUITECTURA E HISTORIA DE LOS MICROORDENADORES

25

hecho la primera demostracin mundial de BASIC corriendo en un 8086 en las placas de Seatle Computer (en julio de 1979) y haba firmado un contrato de distribucin no exclusiva para el QDOS 0.3 a finales de 1980. En abril de 1981 aparecieron las primeras versiones de CP/M-86 de Digital, a la vez que QDOS se renombraba a 86-DOS 1.0 aunque en principio pareca tener menos futuro que el CP/M. En Julio, sin embargo, Microsoft adquira todos los derechos del 86-DOS. Digital Research no ocupa actualmente el lugar de Microsoft porque en 1981 era una compaa demasiado importante como para cerrar un acuerdo con IBM sin imponer sus condiciones para cederle los derechos del sistema operativo CP/M. As que IBM opt por Bill Gates, que acababa de adquirir un sistema operativo, el 86-DOS, que pas a denominarse PC-DOS 1.0. Las versiones de PC-DOS no dependientes de la ROM BIOS de IBM se denominaran MS-DOS, trmino que ha terminado siendo ms popular. A continuacin se expone la evolucin hasta la versin 5.0; las versiones siguientes no aaden ninguna caracterstica interna nueva destacable (aunque a nivel de interfaz con el usuario y utilidades incluidas haya ms cambios). El MS-DOS 7.0 sobre el que corre Windows 95 s tiene bastantes retoques internos, pero no es frecuente su uso aislado o independiente de Windows 95. Aunque PC-DOS y MS-DOS siembre han caminado paralelos, hay una nica excepcin: la versin 7.0 (no confundir MS-DOS 7.0 con PC-DOS 7.0: este ltimo es, realmente, el equivalente al MS-DOS 5.0 6.2). Agosto de 1981.Presentacin del MS-DOS 1.0 original. Marzo de 1982.MS-DOS 1.25, aadiendo soporte para disquetes de doble cara. Las funciones del DOS (en INT 21h) slo llegaban hasta la 1Fh (la 30h no estaba implementada!). Marzo de 1983.MS-DOS 2.0 introducido con el XT: reescritura del ncleo en C; mejoras en el sistema de ficheros (FAT, subdirectorios,...); separacin de los controladores de dispositivo del sistema. Mayo de 1983.MS-DOS 2.01: soporte de juegos de caracteres internacionales. Octubre de 1983.MS-DOS 2.11: eliminacin de errores. Agosto de 1984.MS-DOS 3.0: Aade soporte para disquetes de 1.2M y discos duros de 20 Mb. No sera necesaria una nueva versin del DOS para cada nuevo formato de disco si el controlador integrado para A:, B: y C: lo hubieran hecho flexible algn da. Marzo de 1985. MS-DOS 3.1: Soporte para redes locales. Diciembre de 1985.MS-DOS 3.2: Soporte para disquetes de 720K (3-DD). Abril de 1987.MS-DOS 3.3: Soporte para disquetes de 1.44M (3-HD). Permite particiones secundarias en los discos duros. Soporte internacional: pginas de cdigos. Julio de 1988.MS-DOS 4.0: Soporte para discos duros de ms de 32 Mb (cambio radical interno que forz la reescritura de muchos programas de utilidad) hasta 2 Gb. Controlador de memoria EMM386. Precipitada salida al mercado. Noviembre de 1988.MS-DOS 4.01: Corrige las erratas de la 4.0. Junio de 1991.MS-DOS 5.0: Soporte para memoria superior. La competencia de Digital Research, que irrumpe en el mundo del DOS una dcada ms tarde (con DR-DOS), obliga a Microsoft a incluir ayuda online y a ocuparse un poco ms de los usuarios. Digital Research trabaj arduamente para lograr una compatibilidad total con MS-DOS, y finalmente consigui lanzar al mercado su sistema DR-DOS. Las versiones 5.0 y 6.0 de este sistema, as como el

25

EL UNIVERSO DIGITAL DEL IBM PC, AT Y PS/2

Novell DOS 7.0 (cuando cedi los derechos a Novell) se pueden considerar prcticamente 100% compatibles. El efecto del DR-DOS fue positivo, al forzar a Microsoft a mejorar la interaccin del sistema operativo con los usuarios (documentacin en lnea, programas de utilidad, ciertos detalles...); por poner un ejemplo, hasta el MS-DOS 6.2 ha sido necesario intercambiar tres veces el disquete origen y el destino durante la copia de un disquete normal de 1.44M. En cierto modo, la prepotencia de Microsoft con el MS-DOS a principios de los noventa era similar a la de Digital Research a principios de los 80 con el CP/M.

El futuro.El resto de la historia de los sistemas operativos de PC ya la conoce el lector, a menos que no est informado de la actualidad. Caminamos hacia la integracin de los diversos Windows en uno slo, que esperemos que algn da sea suficientemente abierto para que le surjan competidores. Si en el futuro hubiera un slo sistema operativo soportado por Microsoft, no vamos por buen camino. En ese caso, sera de agradecer que algn juez les obligara a publicar una especificacin completa de las funciones y protocolos del sistema, con objeto de que algn organismo de normalizacin internacional las recogiera sin ambigedades para permitir la libre competencia de otros fabricantes. El DOS y el Windows actuales no son ningn invento maravilloso de Microsoft. Por poner un ejemplo, el MS-DOS 1.0 careca de funcin para identificar la versin del sistema. Exactamente lo mismo le ha sucedido a las primeras versiones de Windows (hay varios chequeos distintos para detectarlas, segn el modo de funcionamiento y la versin): el MS-DOS no lo escribi inicialmente Microsoft, pero Windows s, y salta a la vista que sus programadores, para cometer semejante despiste, se sentaron delante del teclado antes de hacer un anlisis de la aplicacin a desarrollar, igual que lo hubiera hecho alguien que hubiera aprendido a programar con unos fascculos comprados en el kiosco. Con tanto analista en el paro... No olvidemos que el DOS y Windows son el fruto de toda la sociedad utilizando el mismo tipo de ordenadores y necesitando la compatibilidad con lo anterior a cualquier precio. La prueba evidente son los procesadores de Intel, construidos desde hace tiempo para dar servicio al sistema operativo del PC. Somos prisioneros, usuarios obligados de Microsoft. Naturalmente, no tengo nada contra Microsoft, pero opino que el poder adquirido durante una dcada, gracias a la exclusiva de los derechos sobre un sistema operativo sin ayuda en la lnea de comandos, o de un Windows cerrado ntimamente ligado al DOS (de quien slo Microsoft tiene el cdigo fuente) no legitima a ninguna empresa a tener tanto poder. No lo olvidemos: el MS-DOS ha dado un vuelco hacia la amigabilidad con el usuario cuando Digital Research ha aparecido con el DR-DOS. Del mismo modo que Windows seguir lento o colgndose mientras Unix no tenga ms aplicaciones comerciales. Si hay alguien que puede competir con Windows es Unix. Y en Unix no dependemos de ningn fabricante concreto, ni de hardware ni de software. Probablemente, la insuficiente normalizacin actual la corregira pronto el propio mercado. Tiene usted Linux instalado en casa y lo utiliza al menos para conectarse a Internet por Infova, o quiz le gustara hacerlo algn da?. O por el contrario es de los que piensan que Bill Gates es un genio?. Si se queda con la segunda opcin, es que ve mucho la tele, aunque evidentemente tiene razn: y cuantos ms como usted, ms genio que ser... ;-)

MICROPROCESADORES 8086/88, 286, 386 Y 486

31

Captulo III: Microprocesadores 8086/88, 286, 386, 486 y Pentium.

3.1. - CARACTERSTICAS GENERALES. Los microprocesadores Intel 8086 y 8088 se desarrollan a partir de un procesador anterior, el 8080, que, en sus diversas encarnaciones -incluyendo el Zilog Z-80- ha sido la CPU de 8 bits de mayor xito. Poseen una arquitectura interna de 16 bits y pueden trabajar con operandos de 8 y 16 bits; una capacidad de direccionamiento de 20 bits (hasta 1 Mb) y comparten el mismo juego de instrucciones. La filosofa de diseo de la familia del 8086 se basa en la compatibilidad y la creacin de sistemas informticos integrados, por lo que disponen de diversos coprocesadores como el 8089 de E/S y el 8087, coprocesador matemtico de coma flotante. De acuerdo a esta filosofa y para permitir la compatibilidad con los anteriores sistemas de 8 bits, el 8088 se dise con un bus de datos de 8 bits, lo cual le hace ms lento que su hermano el 8086, pues ste es capaz de cargar una palabra ubicada en una direccin par en un solo ciclo de memoria mientras el 8088 debe realizar dos ciclos leyendo cada vez un byte. Disponen de 92 tipos de instrucciones, que pueden ejecutar con hasta 7 modos de direccionamiento. Tienen una capacidad de direccionamiento en puertos de entrada y salida de hasta 64K (65536 puertos), por lo que las mquinas construidas entorno a estos microprocesadores no suelen emplear la entrada/salida por mapa de memoria, como veremos. Entre esas instrucciones, las ms rpidas se ejecutan en 2 ciclos tericos de reloj y unos 9 reales (se trata del movimiento de datos entre registros internos) y las ms lentas en 206 (divisin entera con signo del acumulador por una palabra extrada de la memoria). Las frecuencias internas de reloj tpicas son 4.77 MHz en la versin 8086; 8 MHz en la versin 8086-2 y 10 MHz en la 8086-1. Recurdese que un MHz son un milln de ciclos de reloj, por lo que un PC estndar a 4,77 MHz puede ejecutar de 20.000 a unos 0,5 millones de instrucciones por segundo, segn la complejidad de las mismas (un 486 a 50 MHz, incluso sin memoria cach externa es capaz de ejecutar entre 1,8 y 30 millones de estas instrucciones por segundo). El microprocesador Intel 80286 se caracteriza por poseer dos modos de funcionamiento completamente diferenciados: el modo real en el que se encuentra nada ms ser conectado a la corriente y el modo protegido en el que adquiere capacidad de proceso multitarea y almacenamiento en memoria virtual. El proceso multitarea consiste en realizar varios procesos de manera aparentemente simultnea, con la ayuda del sistema operativo para conmutar automticamente de uno a otro optimizando el uso de la CPU, ya que mientras un proceso est esperando a que un perifrico complete una operacin, se puede atender otro proceso diferente. La memoria virtual permite al ordenador usar ms memoria de la que realmente tiene, almacenando parte de ella en disco: de esta manera, los programas creen tener a su disposicin ms memoria de la que realmente existe; cuando acceden a una parte de la memoria lgica que no existe fsicamente, se produce una interrupcin y el sistema operativo se encarga de acceder al disco y traerla. Cuando la CPU est en modo protegido, los programas de usuario tienen un acceso limitado al juego de instrucciones; slo el proceso supervisor -normalmente el sistema operativo- est capacitado para realizar ciertas tareas. Esto es as para evitar que los programas de usuario puedan campar a sus anchas y entrar en conflictos unos con otros, en materia de recursos como memoria o perifricos. Adems, de esta manera, aunque un error software provoque el cuelgue de un proceso, los dems pueden seguir funcionando normalmente, y el sistema operativo podra abortar el proceso colgado. Por desgracia, con el DOS el 286 no est en modo

31

EL UNIVERSO DIGITAL DEL IBM PC, AT Y PS/2

protegido y el cuelgue de un solo proceso -bien el programa principal o una rutina operada por interrupcionessignifica la cada inmediata de todo el sistema. El 8086 no posee ningn mecanismo para apoyar la multitarea ni la memoria virtual desde el procesador, por lo que es difcil disear un sistema multitarea para el mismo y casi imposible conseguir que sea realmente operativo. Obviamente, el 286 en modo protegido pierde absolutamente toda la compatibilidad con los procesadores anteriores. Por ello, en este libro slo trataremos el modo real, nico disponible bajo DOS, aunque veremos alguna instruccin extra que tambin se puede emplear en modo real. Las caractersticas generales del 286 son: tiene un bus de datos de 16 bits, un bus de direcciones de 24 bits (16 Mb); posee 25 instrucciones ms que el 8086 y admite 8 modos de direccionamiento. En modo virtual permite direccionar hasta 1 Gigabyte. Las frecuencias de trabajo tpicas son de 12 y 16 MHz, aunque existen versiones a 20 y 25 MHz. Aqu, la instruccin ms lenta es la misma que en el caso del 8086, solo que emplea 29 ciclos de reloj en lugar de 206. Un 286 de categora media (16 MHz) podra ejecutar ms de medio milln de instrucciones