Você está na página 1de 35

UNIVERSIDAD NACIONAL DE SAN AGUSTIN ESCUELA PROFESIONAL DE INGENIERIA ELECTRONICA

ARQUITECTURA DE COMPUTADORAS TEMA: Hardware computadora Personal PC XT 8088 8086

Docente: Ing. Erasmo Sulla Presentado por: Arias Copacondori Luis Aro Orqque David Choquehuanca Parizaca David
Arequipa 2011

1. Sistemas que componen la computadora XT: La primera computadora personale (P.C.), corresponda a la XT y se compona de: HARDWARE (Hard=duro, Ware=partes) Monitor: de 12" - Monocromtico: fsforo blanco - ambar (naranja) verde. Gabinete: baby (horizontal). Diskettera: incorporada en el gabinete, para disk. 5.25" 2D (Doble Density) con una capacidad de 360 kb. Disco Rgido: incorporado en el gabinete con una capacidad de 30 MB. Teclado: estadounidense, o sea, sin la tecla .

SOFTWARE (Soft=blando, Ware=partes) En el disco rgido (Disco Duro - Disco Fijo - Hard Disk) de la P.C. XT se encontraba el Sistema Operativo D.O.S. (Disk Operating System) - versin 3.0.

El IBM Personal Computer XT, normalmente abreviado como IBM XT o simplemente XT, fue el sucesor de IBM al IBM PC original. Fue puesto a la venta como IBM nmero de producto 5160 el 8 de marzo de 1983, vena con un disco duro y se convirti en un estndar. Estaba basado esencialmente en la misma arquitectura que el PC original, nicamente aadiendo algunas mejoras. Con el AT llegara una nueva arquitectura de bus de 16 bits. El sistema estaba ampliamente diseado para usuarios de negocios, y un 3270 PC correspondiente que implementaba la emulacin de la terminal IBM 3270 se comercializ despus, en octubre de 1983. El XT son las siglas de eXtended Technology (Tecnologa eXtendida). El estndar XT traa de serie 128KB de memoria RAM, una disquetera 5 1/4" de doble cara, doble densidad, de 360KB de tamao completo, un disco duro Seagate de 10MB (ST-412), un adaptador asncrono (tarjeta serial); una fuente de alimentacin de 130W suministraba energa elctria a todos los componentes. La placa base tena ocho ranuras de expansin ISA de 8 bits, y un microprocesador Intel 8088 corriendo a 4,77 MHz (con un zcalo para coprocesador matemtico Intel 8087). El sistema operativo con el que se sola vender era el PC-DOS 2.0 y superior. Las ocho ranuras de expansin eran un aumento de las cinco del IBM PC, aunque tres de ellas eran utilizadas por el adaptador de la unidad de disquetes, el adaptador del disco duro, y la tarjeta asncrona. Pronto se actualiz la especificacin bsica para estandarizarla a 256KB de memoria RAM. Haba dos versiones de la placa base del XT. La original poda admitir hasta 256kB en la misma placa (en cuatro bloques de chips de 64kB), con un mximo de 640kB alcanzados usando tarjetas de expansin. La segunda revisin de la placa, introducida en 1986, poda admitir los 640kB enteros en la placa base (en dos bloques de chips de 256kb y dos bloques de 64kB). Las placas ms recientes podan ser adaptadas para las "ltimas" especificaciones despus de un par de modificaciones menores. La segunda revisin de la placa tena adems un IBM BIOS revisado, que inclua soporte para el teclado expandido y reduca el tiempo de arranque a la mitad.

Los ltimos XTs venan con unidades de disquetes de media altura instaladas de fbrica, as como con la opcin para un disco duro de 20MB y para el teclado "expandido" (en esencia un Model M sin el panel de LEDs). Sin embargo, en 1985, algunas unidades fueron manufacturadas con solo dos disqueteras de tamao completo y sin disco duro. Este montaje en particular fue una opcin de bajo coste para usuarios que solo tendan a usar el ordenador como una mquina de escribir. En 1986, se introdujo el XT/286 (IBM 5162) con un procesador Intel 80286 a 6 MHz. Este sistema se sac realmente para ser ms rpido que los ATs del momento, usando procesadores 286 de 8 MHz, debido al hecho que no tena RAM con estado de espera que poda mover los datos ms velozmente. Como el PC original, el XT vena con un interprete de BASIC en una ROM (el IBM Cassette BASIC). Ya que este interprete se usaba con una unidad de casete (la cual no era ofrecida en el XT), la nica manera de acceder a ella era desconectando el disco duro y dejando vaca la disquetera, usando el programa BASICA (incluido en un disquete, que aada extensiones para usar las disqueteras), o invocando manualmente una llamada a la BIOS usando un depurador. Los teclados PC y XT no eran compatibles con aquellos de los PC ms modernos (IBM AT o superior). Incluso con adaptadores DIN a mini-DIN PS/2 porque los teclados PC/XT usaban diferentes cdigos de escaneo del teclado y porque adems tienen una interfaz elctrica ligeramente diferente de los teclados PC/AT. Se necesitaba un adaptador de seal XT a AT para hacerlo compatible con los ordenadores modernos. Adems la unidad 'parkbd' se puede usar bajo Linux para dar soporte a cualquiera de los muchos teclados a travs de un simple adaptador del puerto paralelo. Caractersticas Fundamntales Del 8086/8088: MIPS: 0.33 (5-MHz) ESCALA INTEGRACIN: 29.000 TRANSISTORES A diferencia de sus predecesores (8080, 8085) de 8 bits pueden manejar la informacin de 16 bits. o sea, cuenta con registros y bus de datos de 16 bits. Al respecto existe una diferencia entre el 8088 y el 8086. 8088 Bus de datos interna 16 bits Registro de trabajo 16 bits Bus de datos externo 8 bits 8086 Bus de datos interna 16 bits Registro de trabajo 16 bits Bus de datos externo 16 bits El bus de datos externo del 8088 es de 8 bits, en cambio el bus de datos externo de 8086 es de 16 bits. Poder manipular datos e instrucciones en 16 bits. Permite: Mayor precisin Mayor velocidad de procesamiento

Su configuracin Hardware incluye instrucciones que no contienen sus antecesores (8080,8085) como: Multiplicacin Divisin

Su set de instrucciones consta de 92 instrucciones bsicas. Incluye sofisticadas estructura de interrupciones, lo que permite mayor eficiencia de los dispositivos de E/S. Incluye mecanismos eficientes de deteccin y recuperacin de errores, (p.e en la instruccin DIV, prev una interrupcin para divisin por cero) Puede acceder a una mayor cantidad de memoria, su bus de direcciones de de 20 bits, con lo que puede direccionar 1 Megabyte de memoria. Parte de la direccin y todo el bus de datos estn multiplexados en 16 terminales. Los 4 bits de direccin restantes se corresponden con los 4 terminales de direccin adicionales. El 8088 tiene una estructura de interrupciones muy potente, realiza las operaciones de E/S en un espacio fsicamente separada de la memoria llamado espacio de E/S de hasta 64 kbytes de longitud. Estos microprocesadores de propsito general pueden trabajar en un a configuracin de mltiples procesadores, tanto en procesamiento paralelo como multiproceso, con otros procesadores especializados como con: 8087 Procesador matemtico 8089 Procesador de E/S

Estos chips no son obligatorios para las funciones usuales, pero esta disponible en caso de que se los quiera utilizar. Para esto, este microprocesador tiene una configuracin tal que puede trabajar en dos modos diferentes: Modo mnimo: trabajo de manera independiente Modo mximo: trabaja con otros integrados, 8288 controlador de bus, 8087 coprocesador matemtico y otros. LOS MICROPROCESADORES DE PROPSITO GENERAL

ESTRUCTURA DE 8088/8086:

El 8088 y el 8086 son microprocesadores de 16 bits de propsito general de intel. Estos microprocesadores son una extensin lgica del popular 8080. Internamente son iguales, excepto por el tamao del bus de datos externo, el 8088 esta diseado para trabajar con bus de datos externo. El 8088 esta diseado para trabajar con bus de 8 bits, siendo de esta manera compatible con la mayora de los buses del mismo tamao. El 8086 por el contrario, se conecta a un bus de 16 bits.

El 6 de 86 indica el bus de 16 bits; el 8 del 88 significa que el bus en este caso es de 8 bits, ambos nmeros se refieren a la anchura del bus de datos. Internamente, ambos poseen el mismo juego de instrucciones y el mismo tamao de datos. Intel trata esta igualdad interna y desigualdad externa, dividiendo cada procesador 8086 y 8088 en dos sub-procesadores. O sea, cada uno consta de una: Unidad de Ejecucin (EU Execution Unit) y una Unidad Interfaz de Bus (BIU Bus Interface Unit) . Tal como se muestra el siguiente esquema del 8088.

FIGURA 1.- Arquitectura del Microprocesador 8088 Los microprocesadores 8088/8086 constan de una Unidad de ejecucin EU y una Unidad de Interfaz de Bus BIU. La Unidad de ejecucin: esta encargada de realizar todas las operaciones . La unidad de interfaz de bus: Esta encargada de acceder a datos e instrucciones del mundo exterior. Las unidades de ejecucin son idnticas en ambos procesadores, pero las unidades de interfaz son diferentes en varias cuestiones que se vern mas adelante. Esta aproximacin es un ejemplo claro de diseo modular. Esto es, todo el procesador se divide en partes, dos subprocesadores, y cada una esta encargada de ciertas tareas especificas.

Entonces una de las principales caractersticas del 8088/8086 es un proceso interno dual, que permite realizar al mismo tiempo las principales funciones de transferencias de datos y bsqueda de instrucciones. Una unidad, la BIU esta encargada de localizar las instrucciones y de transferir todos los datos entre los registros y el mundo exterior. La otra unidad la EU esta encargada de decodificar y ejecutar todas las instrucciones. Adems la BIU que es la encargada de buscar las instrucciones, utiliza el mtodo llamado de estructura tabular o por colas para almacenar nuevas instrucciones hasta que se necesiten. La BIU del 8088 es ms compleja, ya que debe transferir datos entre el bus de datos interno de 16 bits y el bus de datos externo de 8 bits. La arquitectura del 8086/8088 Repasamos aqu la arquitectura de un PC. Para ms informacin sobre lo aqu expuesto se puede consultar [PA01] y los captulos iniciales de [Tej01], [Rod00] y [Nor01]. Anatoma del PC A grandes rasgos, podramos decir que todos los miembros de la familia PC constan de un procesador, chips de memoria y varios chips inteligentes o programables (que controlan dispositivos externos, como la unidad de disco o el monitor, o ayudan al microprocesador a realizar sus tareas). Todos los componentes del circuito principal, estn situados en la placa principal o placa base. Otros elementos importantes estn situados en placas de expansin, que pueden ser conectadas a la placa principal. El microprocesador1 o unidad central de proceso (CPU, Central Process Unit) controla las operaciones bsicas del ordenador, enviando y recibiendo seales de control a travs de un grupo de caminos electrnicos llamados bus. A grandes rasgos, puede decirse que un bus es un conjunto de unos pequeos cables que conducen bits de informacin. El nmero de cables que forman el bus se denomina ancho de banda del bus. Localizadas a lo largo del bus, estn las puertas de entrada y salida (E/S I/O), que conectan la memoria y los chips de apoyo al bus (CTR I/O, controladores de E/S). Los datos pasan a travs de estas puertas de E/S mientras viajan desde y hasta la CPU y otras partes Grficamente, el esquema bsico de un PC se puede resumir de este modo:

Como se observa, hay seis componentes bsicos2: 1. Oscilador de reloj: es el encargado de dar un ritmo de funcionamiento al procesador y a toda la circutera en general; por lo tanto, determina la cantidad de

instrucciones que el procesador puede ejecutar por segundo. 2. CPU: Es el microcircuito al cual entran las instrucciones de cdigo mquina y donde las mismas son procesadas (ejecutadas). 3. Memoria: Est formada por una serie de chips donde se almacena toda la informacin del sistema, lo cual incluye tanto al cdigo (instrucciones) como los datos de cualquier tipo. 4. Bus de datos: Es el bus por donde se mueve la informacin digital que circula por todo el sistema (memoria, puertos...), desplazndose principalmente entre la memoria y la CPU, y viceversa. Este bus es de 16 bits en el 8086 (8 bits en el 8088 y 32 bits en 80386 y 80486). 5. Bus de direcciones: Es el bus usado por la CPU para indicar a la memoria la posicin en la que est la informacin a la que se quiere acceder (ya sea para leerla o para escribir en ella). Una vez se haya accedido a esa posicin en la memoria, sta enviar su contenido a travs del mencionado bus de datos. El bus de direcciones posee 20 bits de ancho de banda, por lo que se pueden indicar 220 = 1.048.576 posiciones de memoria distintas. 6. Bus de control: Este bus es el encargado de indicar al sistema tanto el tipo de informacin que circula por el bus de datos en cada momento, como de sincronizar las seales que controlan el funcionamiento de la circutera del sistema. Algunos de estos componentes se desarrollarn ms ampliamente a continuacin. El microprocesador El microprocesador o unidad central de proceso (CPU, Central Process Unit) es el chip que ejecuta los programas. Lleva a cabo una gran variedad de clculos, comparaciones numricas y transferencia de datos como respuesta a las peticiones de los programas almacenados en memoria. As, pues, la unidad central de proceso es el conjunto formado por la unidad control, la unidad de proceso (o unidad aritmtico lgica, ALU) y los registros.

La unidad de control es la que gobierna todo el funcionamiento del ordenador. Controla, paso a paso, la ejecucin de las instrucciones que se encuentran en memoria central y genera las rdenes necesarias para el funcionamiento de la unidad de proceso y de los canales. Adems, gobierna tambin la lectura y escritura de instrucciones y datos de la memoria central.

La unidad de proceso (ALU) es la que ejecuta las operaciones aritmticas y lgicas. Los registros son dispositivos de un ordenador para el almacenamiento temporal de datos. Ambos se desarrollarn ms ampliamente a continuacin. El microprocesador 8086, que es el que se va a considerar en este trabajo, es un microprocesador de 16 bits que controla los ordenadores personales estndar de IBM. El 8086 difiere del 8088 solamente en un detalle: utiliza un bus de datos de 16 bits en vez del bus de 8 bits del 8088. A excepcin de esa diferencia, se les considera prcticamente idnticos. Por ello, cada vez que se haga referencia a uno de ellos, se pondr 8086/8088 para indicar que esa referencia es vlida para ambos microprocesadores. DESCRIPCION DE PINES DEL 8086/8088

DESCRIPCIN DE LAS 40 PATAS DEL P 8088. Bus de direccin, datos y control. En el 8088 el bus de direccin, datos y control se divide en tres partes: a. Los 8 bits menos significativos de direccin/datos (AD0 AD7) Multiplexados entre direcciones y datos. b. Los 8 bits centrales (A8 A15) No multiplexados. c. Los 4 bits ms significativos (A16 A19) Multiplexados entre direcciones y seales de control. Se puede trabajar con los buses multiplexados o demultiplexados. AD7 AD0, bus de direccin y datos. Estn multiplexadas entre buses de direcciones (T1) y de datos (T2, T3, Tw, T4) y contienen los 8 bits menos significativos: Permanecen en estado de alta impedancia durante el reconocimiento de interrupcin y de solicitud de bus. A15 A8, bus de direccin. Tiene la mitad superior de las direcciones (T1, T2, T3, Tw, T4), no estn multiplexadas y permanecen en alta impedancia durante el reconocimiento de interrupcin y de solicitud de bus. A19 A16 / S6 S3, bus de direccin y de estatus. Estn multiplexadas entre los 4 bits ms significativos de direcciones (T1) y estatus (T2, T3, Tw, T4)

En el caso I/O durante T1 permanecen en cero. S6 siempre est en 0. S5 indica la condicin de la bandera de interrupcin IF. S3 y S4 indican a cul segmento se est accediendo. RD, lectura. Cuando est en 0 (T2, T3, Tw) indica que el bus de datos puede recibir datos. Se garantiza que durante T2 estar en alto hasta que el bus del 8088 quede en alta impedancia. Permanece en alta impedancia durante el reconocimiento de solicitud de bus. READY, listo. Es entrada y cuando la activamos genera pulsos de reloj (Tw) para prolongar el ciclo de bus INTR, peticin de interrupcin. Entrada que se muestra en el ltimo ciclo de reloj de cada interrupcin para determinar si el 8088 debe entrar en una operacin de reconocimiento de interrupcin. Puede ser enmascarada. Se sincroniza y es activa en alto. TEST, prueba. Es una entrada que la usa la instruccin WAIT. Si TEST=0, WAIT funciona como una NOP. Si TEST=1, WAIT espera a que TEST pase a 0. Se usa para sincronizar con dispositivos externos. NMI, interrupcin no enmascarable. Es una entrada activa por flanco positivo que causa una interrupcin del tipo 2. La interrupcin se cumple al final de la instruccin actual y est internamente sincronizada. RESET, restauracin. Para restauracin debe permanecer en alto por lo menos 4 ciclos de reloj y se activa en el flanco negativo. CLK, reloj. Entrada de reloj que debe tener un ciclo de trabajo de 33%. VCC, alimentacin. 5V 10%, referencia para la lgica digital. GND, tierra. 0V, referencia para la lgica digital. MN/MX, modo mnimo, modo mximo. Entrada para seleccionar el modo de funcionamiento del P. IO/M, lnea de estados de memoria o E/S. Indica si la direccin es de memoria o de I/O. Permanece en alta impedancia durante un reconocimiento de solicitud de bus. WR, escritura. Es una salida que indica que el 8088 va a escribir a memoria o a E/S. Se activa (bajo) durante T2, T3 y Tw de un ciclo de escritura e indica que el bus contiene datos vlidos. Permanece en alta impedancia durante un reconocimiento de solicitud de bus. INTA, reconocimiento de interrupcin. Salida que se activa (bajo) durante T2, T3 y Tw de cada ciclo de reconocimiento de interrupcin. Es una respuesta a la entrada INTR y se usa como pulso de lectura en un ciclo de reconocimiento de interrupcin. ALE, habilitacin del cerrojo de direccin. Salida que indica (estando en alto durante la parte baja del reloj de T1) que en el bus hay una direccin vlida. ALE nunca queda en estado de alta impedancia. DT/R, transmite/recibe datos.

Indica que el bus de datos transmite datos (DT/R=1) o los recibe (DT/R=0) Esta seal es necesaria para habilitar los circuitos de acoplamiento del bus de datos externo. Permanece en alta impedancia durante un reconocimiento de solicitud de bus. DEN, habilitacin de datos. Salida que se emplea para habilitar los circuitos de acoplamiento del bus de datos externo. Se activa en bajo durante cada acceso a memoria y ciclos de interrupcin. Para lectura o ciclos INTA, se activa desde la mitad de T2 hasta la mitad de T4. Para ciclos de escritura, se activa desde el comienzo de T2 hasta el medio de T4. Permanece en alta impedancia durante un reconocimiento de solicitud de bus. HOLD, solicitud de acceso directo a memoria. Si HOLD=1, el 8088 deja de ejecutar el programa actual y lleva su bus de direcciones, datos y control a alta impedancia. Si HOLD=0, el 8088 ejecuta los programas normalmente. Requiere sincronizacin externa. HLDA, respuesta a la peticin de acceso directo a memoria. Salida que indica (HLDA=1) que el 8088 ha concedido los buses (es la respuesta del 8088 a la entrada HOLD) SSO, lnea de estatus. Esta seal de salida se combina con IO/M y DT/R para decodificar la funcin del ciclo de bus actual. CICLO DE BUS DEL P. El ciclo de bus consiste de al menos 4 ciclos de reloj, los cuales se denominan T1, T2, T3 y T4, como se muestra en la Figura 1.

FIGURA 1. CICLO DEL BUS DEL 8088. Ciclo de lectura y ciclo de escritura Las direcciones son emitidas durante T1 y la transferencia de datos ocurre entre T3 y T4. T2 se usa para cambiar la direccin del bus durante operaciones de lectura. En T1: Se envan las direcciones y se proporcionan las seales de control ALE, DT/ R y IO/M. En T2: Se proporcionan las seales DEN, RD (lectura) o WR (escritura) En el caso de escritura aparecen los datos que se van a escribir en el bus de datos. Al final de T2 se muestra la seal READY. En T3: Se da tiempo a la memoria para acceder a los datos. En el caso de que sea un ciclo de lectura el bus de datos se muestra al final de T3. En T4: Se desactivan todas las seales de control para prepararse para el siguiente ciclo de bus. En este momento, el flanco positivo de WR transfiere datos a la memoria, los cuales se activan y escriben cuando la seal WR retorna a 1. Ciclo de escritura (ver Figura 1) Empieza con la aparicin de la seal ALE y la emisin de las direcciones. La seal IO/M se suministra para indicar si es a memoria o a I/O.

En T2: Despus de la emisin de las direcciones, el 8088 emite el dato a escribir en la locacin direccionada. Este dato permanece vlido al menos hasta la mitad de T4. Durante T2, T3 y Tw, el 8088 enva la seal de control de escritura (WR) que se pone en estado activo en el comienzo de T2. Los datos se escriben en la memoria en el flanco positivo de WR. La seal de RD en la lectura est un poco ms retrasada que la de WR en la escritura para dar tiempo a que el bus quede en alta impedancia. Ciclo de lectura (ver Figura 1) Comienza en T1 con la aparicin de la seal ALE, cuyo flanco negativo se usa para cerrojar las direcciones, que son vlidas en el bus de direcciones/datos (AD0 AD7) Las lneas de direcciones A8 A15 no necesitan ser cerrojadas ya que permanecen vlidas en todo el ciclo de bus. De T1 a T4, la seal IO/M indica si es una operacin a memoria o a un dispositivo de E/S. En T2 las direcciones se sacan del bus de direcciones/datos y el bus se pone en alta impedancia (AD0 AD7) La seal de control de lectura (RD) aparece en T2 y causa que el dispositivo direccionado habilite su bus de datos. Un tiempo despus, debe estar disponible el dato vlido sobre el bus. Cuando el 8088 retorna la seal RD a un nivel alto, el dispositivo direccionado pondr en alta impedancia su salida de datos.

Para el clculo de la resistencia R, se consideran los datos anteriores y los correspondientes al schmitt trigger, los cuales se obtuvieron de las tablas de referencia y son: VT+ = 2.7V VCC = 4.5V VT- = 1.8V La frmula de la frecuencia est dada por:

CIRCUITO PARA GENERAR LA SEAL DE RESET. El P requiere que el tiempo de duracin mnimo en esta terminal sea 50 s. Por lo tanto, podemos utilizar el circuito integrado 8284A de la familia Intel que genera el pulso de reloj y el de reset o bien, hacerlo utilizando un inversor y una red RC que garantice el tiempo de duracin de 50 s. En el diseo ocuparemos las frmulas del efecto transitorio, considerando los datos del schmitt trigger como: VT- = 1.8V = VC y VCC = 5V. Para la red RC con disparador Schmitt, se tiene el siguiente desarrollo: CIRCUITO PARA GENERAR EL PULSO DE RELOJ. Adems del circuito para la sealizacin del P que propone el fabricante (8284A), que se utiliza para RELOJ y RESET, podemos utilizar otros circuitos, uno de ellos, se propone a continuacin: Tomamos de la hoja de especificaciones del microP la frecuencia de operacin y el % del ciclo de trabajo. Para bajas velocidades, podemos tomar 50% como ciclo de trabajo; como la oscilacin la determina la red RC, proponemos el valor de C y calculamos R, ajustando el valor obtenido al valor comercial prximo. Por lo general, usamos inversores para este ejemplo de clculo: tomamos una frecuencia igual a 2MHz, como inversor un schmitt trigger MC74HC14AC y como capacitor uno cermico de 0.001F. El circuito a utilizar se muestra a continuacin:

El circuito para restauracin es:

CIRCUITO PARA DEMLTIPLEXAR EL BUS DE DIRECCIN DEL BUS DE DATOS Y DE CONTROL. Demultiplexaje de canales.

El canal de direccin y de datos del 8086/8088 est multiplexado para reducir el nmero de terminales requeridas en el circuito integrado. Desgraciadamente, esto aumenta el trabajo del diseador con la tarea de mltiplexar la informacin contenida en estas terminales. Por qu no dejar multiplexados los canales? La memoria y la E/S requieren que la direccin siga siendo vlida y establece un ciclo de lectura o escritura. Si los canales estn multiplexados hay cambios de direccin en la memoria y en la E/S lo que hace leer o escribir datos en las localidades errneas. Todos los sistemas de computadora tienen tres canales: 1) Un canal de direcciones que proporciona la direccin de memoria al nmero de puerto para la E/S; 2) un canal de datos que transfiere los datos entre el microprocesador y la memoria y la E/S en el sistema y 3) un canal de control que aplica seales de control en la memoria y E/S lo que hace leer o escribir datos en localidades errneas. Demultiplexaje del 8088. En la Figura 2 se muestra el microprocesador 8088 y los componentes requeridos para demultiplexar sus canales. En este caso, se utilizan dos registros transparentes 74LS573 para demultiplexar las conexiones AD7-AD0 del canal de direcciones y datos en las terminales multiplexadas A19 y S6-A16/S3. Estos registros, con multivibradores tipo D que son como alambres, cuando la seal de habilitacin (ALE) de direccin se vuelva un 1 lgico transfiere las entradas a las salidas. Despus de un corto tiempo, ALE regresa al 0 lgico, lo cual hace que los registros recuerden las entradas en el momento del cambio a un 0 lgico. En este caso, ~recuerden~ de A7-A0 en el registro inferior y a A19 hasta A16 en el registro superior. Esto produce un canal de direcciones independientes para las terminales A19 hasta A0 que permiten que el 8088 direccione 1MB de espacio de memoria. El hecho de que el canal de datos est separado permite conectarlo con cualquier dispositivo perifrico de 8 bits de memoria. En la Figura 2 se ilustra un 8088 con los tres canales multiplexados: direcciones (A19 hasta A0 y BHE), el de datos (D15 hasta D0) y el de control (IO/M, RD y WR) Demultiplexaje del 8086. El 8086 requiere canales separados de direcciones, datos y control. La diferencia principal es el nmero de terminales multiplexadas. En el 8088 slo estn multiplexadas AD7 hasta AD0, A19 y S6 hasta A16 y S3. En el caso del 8086, las terminales multiplexadas incluyen AD15-AD0 y A19 y S6 hasta A16 y S3 BHE/S7. Hay que demultiplexar todas estas seales. Para el 8086, el circuito es casi idntico al de la Figura 2 excepto que se agregar un 74LS573 adicional para demultiplexar las terminales de direcciones/datos del canal AD15-AD8 y BHE/SE7, se agreg a la entrada del 74LS573 de la parte superior para seleccionar el banco alto en el sistema de memoria de 16 bits del 8086. Aqu la memoria y el sistema de E/S ven al 8086 como un dispositivo con un canal de direcciones o de 20 bits (A19-A0), un canal de datos de 16 bits (D15-D0) y un canal de control de tres lneas (IO/M, RD y WR)

El sistema acoplado. Si hay ms de 10 cargas lgicas conectadas en cualquier terminal de un canal, hay que acoplar la totalidad del sistema 8086 o del 8088. Las terminales demultiplexadas ya estn acopladas con los registros transparentes 74LS573, que se han diseado para manejar los canales de alta capacitancia que se encuentran en los sistemas de microcomputadoras. Se han aumentado las corrientes de salida de los registros a fin de que se puedan manejar ms unidades de carga TTL; un 0 lgico de salida proporciona hasta 32mA de disipacin de corriente y una salida en 1 lgico proporciona hasta 5.2mA de corriente. Una vez que hemos demultiplexado el bus de direccin del de datos y control, podemos conectar bloques de RAM y/o PROM y puertos de E/S paralelo o tarjetas conteniendo varios puertos de E/S paralelos. Tambin podemos conectar puertos seriales, tal como se describi en el tema de memorias y E/S. 2. Funcionamiento en general: Organizacin De La Memoria Podemos visualizar a la memoria principal de una computadora como una coleccin de localidades de memoria cada una de un byte. Cada localidad de memoria tiene su propia direccin. Dado que cada direccin es un nmero entero, hay una relacin directa entre el nmero de localidades de memoria y el tamao que debe tener una direccin en bits. Una direccin de N bits nos permite direccionar 2N direcciones diferentes. En la memoria principal de una computadora se almacenan tanto los programas como los datos con que operan esos programas. Al estar ejecutando un programa, se requiere calcular las direcciones en las que estn almacenadas las instrucciones y

datos. El clculo de las direcciones de memoria depende de cmo el procesador visualiza u organiza, la memoria. Dos de las formas en las que el microprocesador visualiza u organiza la memoria en una computadora son las llamadas memoria lineal y memoria segmentada. Memoria Lineal El esquema de memoria lineal es el ms simple de todos ya que bajo ste el microprocesador ve a la memoria como un arreglo lineal de localidades de memoria de un byte y en el que las direcciones de las localidades de memoria son los ndices de los elementos del arreglo. El esquema de memoria lineal es usado por lo general en microprocesadores con capacidad de direccionamiento reducido, por lo general aquellos en los que la memoria no excede a los 64 KB. Memoria Segmentada En el esquema de memoria segmentada el microprocesador visualiza a la memoria como dividida en segmentos de memoria y a cada segmento lo visualiza como un arreglo lineal de localidades de memoria de un byte. Cada segmento tiene una direccin llamada direccin de segmento. La direccin de una localidad de memoria se forma a partir de la direccin del segmento que contiene a la localidad de memoria y al ndice de la localidad de memoria dentro del segmento. A este ndice se le conoce como desplazamiento. El esquema de memoria segmentada es usado por lo general en microprocesadores con capacidad de direccionamiento que excede a los 64 KB. Uno de estos procesadores es el procesador 8086 de Intel. Segmentacin De La Memoria En El Microprocesador 8086 El CPU empleado en las primeras computadoras IBM PC y compatibles, el microprocesador 8086 de Intel, nos permite direccionar 1 MB = 220 = 1,048,576 bytes. Los procesadores ms modernos de Intel de la familia 80x86 (80286, 80386, 80486 y Pentium) empleados en las computadoras PC pueden direccionar un mayor nmero de localidades (hasta 16 MB = 224 = 16,777,216 bytes para el 80286 y hasta 4 GB = 232 = 4,294,967,296 bytes para el 80386, 80486 y Pentium) pero para mantener compatibilidad con el microprocesador 8086 tienen dos formas de operacin: Una que imita al microprocesador 8086 llamado modo real y otro que explota todo el poder del procesador llamado modo protegido. El sistema operativo MSDOS a fin de mantener compatibilidad con el software existente, slo permite la operacin de los microprocesadores en modo real y para fines prcticos una computadora PC bajo ese sistema operativo se comportar como si tuviese un procesador 8086 (aunque ms rpido). En el microprocesador 8086 (o en los microprocesadores ms modernos de la familia 80x86 operando en el modo real) visualiza la memoria como dividida en segmentos los cuales tienen las siguientes Caractersticas:

Los segmentos no son divisiones fsicas. Un segmento es una ventana lgica a travs de la cual el programa visualiza porciones de la memoria. Los segmentos empiezan cada 16 bytes. Como a un bloque de memoria de 16 bytes se le conoce como prrafo, los segmentos empiezan a cada prrafo. Hay hasta 65,536 segmentos (1,048,576/16 = 65,536). El primer segmento es el segmento 0, el siguiente es el segmento 1, etc. El nmero del segmento se conoce como la direccin del segmento. La direccin real, tambin llamada direccin efectiva, en la que empieza un segmento se obtiene multiplicando la direccin del segmento por 16. Los segmentos pueden ser tan pequeos como 16 bytes y tan grandes como 64 KB = 65,536 Los segmentos pueden traslaparse. Esto ocurre cuando un segmento es mayor a 16 bytes, tal como se muestra en la figura 2-1.

Figura 2-1. Mapa de la memoria segmentada Al cargar un programa a memoria, ste ocupa uno o ms segmentos. Los segmentos asignados a un programa no tienen que estar uno junto al otro aunque frecuentemente lo estn. Se acostumbra expresar la direccin de una localidad de memoria mediante la combinacin formada por la direccin del segmento en que se encuentra la localidad de memoria y el desplazamiento de la localidad con respecto al principio del segmento. Segmento:Desplazamiento Ambos, la direccin de segmento y el desplazamiento son valores de 16 bits. Estos dos valores se combinan para formar la direccin real o efectiva de la localidad de la siguiente manera: Direccin real = segmento << 4 + desplazamiento Debido al traslape entre los segmentos muchas combinaciones segmento:desplazamiento nos pueden dar la misma direccin real, por ejemplo la localidad de memoria cuya direccin real es 0x01000 puede expresarse mediante las siguientes combinaciones segmento:desplazamiento

Cuando el microprocesador quiere calcular una direccin real, carga en un registro el valor del segmento y en otro registro el valor del desplazamiento y realiza las operaciones de corrimiento y suma. Modelo De Programacin Del Microprocesador 8086: Los registros de un microprocesador son componentes dentro del microprocesador que nos permiten almacenar datos. Estos datos pueden representar valores sobre los cuales se van a realizar operaciones, resultados de las operaciones, direcciones de localidades de memoria donde se encuentran datos e instrucciones, direcciones de los dispositivos de entrada/salida sobre los que deseamos escribir o leer, o los datos a escribir o ledos de esos dispositivos. El nmero, tamao y uso de los registros de un microprocesador as como su conjunto de instrucciones determina la eficiencia con que el microprocesador realiza una tarea. A la descripcin del nmero, tamao y uso de los registros de un microprocesador se le conoce como el modelo de programacin del microprocesador. En la figura 2-2 se ilustra el arreglo de registros internos del microprocesador 8086. Los microprocesadores ms poderosos de la familia del 8086 tienen otros registros adicionales pero no forman parte del estudio de este curso. Los registros del 8086 pueden clasificarse en tres grupos: registros de uso general, registros apuntadores y de ndice y registros de segmentos. Adicionalmente tienen un registro de banderas que seala las condiciones respecto al funcionamiento de la unidad aritmtica y lgica (ALU).

4. Sistema descrito por bloques y circuitos: Descripcin de las patas en modo mnimo

Conexin en modo mnimo

Bus Local y Multimaster

Multiprocesamiento:

Reset y Mapeo de Memoria:

Manejo de entradas y salidas:

5. Esquemtico del sistema Completo Sistema de aplicacin: Computadora casera con procesador 8088 (no PC)

6. Muestra de un Mainboard Etiquetado y accesorios:

de un XT con identificacion de dispositivos

Evolucin placas base en los PCs ARQUITECTURA VON NEUMANN EN EL PC

Una placa base/madre chipset es un circuito impreso (PCB: Printed Circuit Board) que soporta y conecta los elemento bsicos de un PC.

Las primeras placas base para procesadores Intel desde 8088/86 hasta el
80286, estn basadas en tecnologa TTL. Chips memoria soldados a la placa base De ah chipset (conjunto de chips)

A partir del 80386 aparecen otros fabricantes (ALI, VIA, ) que desarrollan

chisets propios. Chipsets: diseados para una determinada familia de procesadores (386, 486, Pentium, Athlon,)

Diferentes arquitecturas de chipsets. Cmo entiende el S.O. los diferentes chipsets? BIOS (enlace entre Hw y Sw) + estandarizacin de la arquitectura PC.

A veces los fabricantes dan drivers junto con la placa base para diferentes
SS.OO.

Compatibilidad PC facilita que el Sw pueda ejecutarse sobre cualquier chipset. La tendencia es actual a llevado a gestionar todo el bus del sistema (FSB) y de
expansin o E/S a travs de uno o dos chips soldados a la placa base. ARQUITECTURA VON NEUMANN EN EL PC (ACTUAL)

alimentacin y formatos placas base Bsicamente existen dos tipos de conexiones para placas base de PCs: Conector AT: tensiones 5V y 12V. Conector ATX: usado en la actualidad. Basado en el AT.

Proporciona adems tensiones de 3,3V. Incorpora seales para comunicacin con la placa base.

El formato ATX tambin se refiere a una serie de exigencias y recomendaciones

para fabricar placas base. Existen dos formatos: ATX y mini-ATX. Involucra a otros formatos del PC como la fuente de alimentacin y la caja. Objetivo: estandarizar, y por tanto reducir costes de fabricacin mantenimiento.

El chipset del 8086 y los primeros buses de PC Un nico bus (blackplane) es usado para comunicar el procesador con la memoria y los dispositivos de E/S. Simple y barato pero genera el mayor cuello de botella de todo el PC.

Ejemplo: el IBM PC XT/AT

7.- Registros del 8088 Registros de propsito general

El microprocesador 8086 cuenta con cuatro registros de propsito general, los cuales pueden ser usados libremente por los programadores. Estos registros reciben los nombres siguientes: AX (Acumulador) Este registro es el encargado de almacenar el resultado de algunas operaciones aritmticas y lgicas. BX (Base) Este registro es utilizado para calcular direcciones relativas de datos en la memoria. CX (Contador) Su funcin principal es la de almacenar el nmero de veces que un ciclo de instrucciones debe repetirse. DX (Datos) Por lo general se utiliza para acceder a las variables almacenadas en la memoria. Registros apuntadores El 8086 tambin cuenta con dos registros apuntadores SP y BP. Estos registros reciben su nombre por que su funcin principal es la de apuntar a alguna direccin de memoria especifica. SP (Apuntador de pila) Se encarga de controlar el acceso de los datos a la pila de los programas. Todos los programas en lenguaje ensamblador utilizan una pila para almacenar datos en forma temporal. BP (Apuntador Base) Su funcin es la de proporcionar direcciones para la transferencia e intercambio de datos. Registros ndices Existen dos registros llamados SI y DI que estn estrechamente ligados con operaciones de cadenas de datos. SI (ndice Fuente) Proporciona la direccin inicial para que una cadena sea manipulada. DI (ndice Destino) Proporciona la direccin de destino donde por lo general una cadena ser almacenada despus de alguna operacin de transferencia. Registros de segmento El 8086 cuenta con cuatro registros especiales llamados registros de segmento. CS (Segmento de cdigo) Contiene la direccin base del lugar donde inicia el programa almacenado en memoria. DS (Segmento de datos) Contiene la direccin base del lugar del rea de memoria donde fueron almacenadas las variables del programa. ES (Segmento extra) Este registro por lo general contiene la misma direccin que el registro DS. SS (Segmento de Pila) Contiene la direccin base del lugar donde inicia el rea de memoria reservada para la pila. Registro apuntador de instrucciones IP (Apuntador de instrucciones) Este registro contiene la direccin de desplazamiento del lugar de memoria donde est la siguiente instruccin que ser ejecutada por el microprocesador. Registro de estado Conocido tambin como registro de banderas (Flags), tiene como funcin principal almacenar el estado individual de las diferentes condiciones que son manejadas por el microprocesador. Estas condiciones por lo general cambian de estado despus de cualquier operacin aritmtica o lgica: CF (Acarreo) Esta bandera indica el acarreo o prstamo despus de una suma o resta. OF (Sobreflujo) Esta bandera indica cuando el resultado de una suma o resta de nmeros con signo sobrepasa la capacidad de almacenamiento de los registros.

SF (Signo) Esta bandera indica si el resultado de una operacin es positivo o negativo. SF=0 es positivo, SF=1 es negativo. DF (Direccin) Indica el sentido en el que los datos sern transferidos en operaciones de manipulacin de cadenas. DF=1 es de derecha a izquierda y DF=0 es de izquierda a derecha. ZF (Cero) Indica si el resultado de una operacin aritmtica o lgica fue cero o diferente de cero. ZF=0 es diferente y ZF=1 es cero. IF (interrupcin) Activa y desactiva la terminal INTR del microprocesador. PF (paridad) Indica la paridad de un nmero. Si PF=0 la paridad es impar y si PF=1 la paridad es par. AF (Acarreo auxiliar) Indica si despus de una operacin de suma o resta ha ocurrido un acarreo de los bits 3 al 4. TF (Trampa) Esta bandera controla la ejecucin paso por paso de un programa con fines de depuracin. 8.- Modos de direccionamiento. Estos procesadores tienen 27 modos de direccionamiento (una cantidad bastante ms grande que los microprocesadores anteriores) o reglas para localizar un operando de una instruccin. Tres de ellos son comunes a microprocesadores anteriores: direccionamiento inmediato (el operando es un nmero que se encuentra en la misma instruccin), La base se almacena en el registro base (BX o BP). El ndice se almacena en el registro ndice (SI o DI). Cualquiera de estas dos cantidades, la suma de las dos o ninguna, pueden utilizarse para calcular la direccin real, pero no pueden sumarse dos bases o dos ndices. Los registros restantes (AX, CX, DX y SP) no pueden utilizarse para direccionamiento indirecto. El programador puede utilizar tanto la base como el ndice para gestionar ciertas cosas, tales como matrices de dos dimensiones, o estructuras internas a otras estructuras, esquemas que se utilizan en las prcticas comunes de programacin. La base y el ndice son variables o dinmicas, ya que estn almacenadas en registros de la CPU. Es decir, pueden modificarse fcilmente mientras se ejecuta un programa. Adems del segmento, base e ndice, se usa un desplazamiento de 16 bits, 8 bits o 0 bits (sin desplazamiento). sta es una cantidad esttica que se fija al tiempo de ensamblado (paso de cdigo fuente a cdigo de mquina) y no puede cambiarse durante la ejecucin del programa (a menos que el programa se escriba sobre s mismo, lo que constituye una prctica no aconsejada). Todo esto genera los 24 modos de direccionamiento a memoria que se ven a continuacin: - Registro indirecto: 1) [BX], 2) [DI]. 3) [SI]. - Basado: 4) desp8[BX], 5) desp8[BP], 6) desp16[BX], 7) desp16[BP]. - Indexado: 8) desp8[SI], 9) desp8[DI], 10) desp16[SI], 11) desp16[DI]. - Basado-indexado: 12) [BX+SI], 13) [BX+DI], 14) [BP+SI], 15) [BX+DI]. - Basado-indexado con desplazamiento: 16) desp8[BX+SI], 17) desp8[BX+DI], 18) desp8[BP+SI], 19) desp8[BX+DI], 20) desp16[BX+SI], 21) desp16[BX+DI], 22) desp16[BP+SI], 23) desp16[BX+DI]. - Directo: 24) [desp16]. Aqu desp8 indica desplazamiento de 8 bits y desp16 indica desplazamiento de 16 bits. Otras combinaciones no estn implementadas en la CPU y generarn error al querer ensamblar, por ejemplo, ADD CL,[DX+SI]. El ensamblador genera el tipo de desplazamiento ms apropiado (0, 8 16 bits)

dependiendo del valor que tenga la constante: si vale cero se utiliza el primer caso, si vale entre -128 y 127 se utiliza el segundo, y en otro caso se utiliza el tercero. Ntese que [BP] sin desplazamiento no existe. Al ensamblar una instruccin como, por ejemplo, MOV AL,[BP], se generar un desplazamiento de 8 bits con valor cero. Esta instruccin ocupa registros sean: ES = 3200h, BX = 200h, SI = 38h. Como se apunt ms arriba la direccin real de memoria ser: ES * 10h + BX + SI + 6 = 3200h * 10h + 200h + 38h + 6 = 3223Eh Estructura de memoria de segmentacin: Como se ha mencionado anteriormente, el 8086/8088 usa un esquema ingenioso llamado segmentacin, para acceder correctamente a un megabyte completo de memoria, con referencias de direcciones de slo 16 bits. Veamos cmo funciona. Cualquier direccin tiene dos partes, cada una de las cuales es una cantidad de 16 bits. Una parte es la direccin de segmento y la otra es el offset. A su vez el offset se compone de varias partes: un desplazamiento (un nmero fijo), una base (almacenada en el registro base) y un ndice (almacenado en el registro ndice). La direccin de segmento se almacena en uno de los cuatro registros de segmento (CS, DS, ES, SS). El procesador usa estas dos cantidades de 16 bits para calcular la direccin real de 20 bits, segn la siguiente frmula: Direccin real = 16 * (direccin del segmento) + offset Tal como veamos antes, dado que 16 en decimal es 10 en hexadecimal, multiplicar por ese valor es lo mismo que correr el nmero hexadecimal a la izquierda una posicin. Hay dos registros de segmento que tienen usos especiales: el microprocesador utiliza el registro CS (con el offset almacenado en el puntero de instruccin IP) cada vez que se debe acceder a un byte de instruccin de programa, mientras que las instrucciones que utilizan la pila (llamados a procedimientos, retornos, interrupciones y las instrucciones PUSH y POP) siempre utilizan el registro de segmento SS (con el offset almacenado en el registro puntero de pila SP). De ah los nombres que toman: CS es el segmento de cdigo mientras que SS es el registro segmento de pila. Para acceder a datos en la memoria se puede utilizar cualquiera de los cuatro registros de segmento, pero uno de ellos provoca que la instruccin ocupe un byte menos de memoria: es el llamado segmento por defecto, por lo que en lo posible hay que tratar de usar dicho segmento para direccionar datos. Este segmento es el DS (registro de segmento de datos) para todos los casos excepto cuando se utiliza el registro base BP. En este caso el segmento por defecto es SS. DS, ES y SS se cargan mediante las instrucciones MOV y POP, mientras que CS se carga mediante transferencias de control (saltos, llamadas, retornos, interrupciones) intersegmento. 9.- Set de instrucciones del 8088. Se pueden clasificar en los siguientes grupos: Instrucciones de Transferencia de Datos. Estas instrucciones mueven datos de una parte a otra del sistema; desde y hacia la memoria principal, de y a los registros de datos, puertos de E/S y registros de segmentacin. Las instrucciones de transferencia de datos son las siguientes: MOV transfiere XCHG intercambia

IN entrada OUT salida XLAT traduce usando una tabla LEA carga la direccin efectiva LDS carga el segmento de datos LES carga el segmento extra LAHF carga los indicadores en AH SAHF guarda AH en los indicadores PUSH FUENTE (sp) fuente POP DESTINO destino (sp)

Control de Bucles (instrucciones simples) Estas posibilitan el grupo de control ms elemental de nuestros programas. Un bucle es un bloque de cdigo que se ejecuta varias veces. Hay 4 tipos de bucles bsicos: Bucles sin fin Bucles por conteo Bucles hasta Bucles mientras Las instrucciones de control de bucles son las siguientes: INC incrementar DEC decrementar LOOP realizar un bucle LOOPZ,LOOPE realizar un bucle si es cero LOOPNZ,LOOPNE realizar un bucle si no es cero JCXZ salta si CX es cero Instrucciones de Prueba, Comparacin y Saltos. Este grupo es una continuacin del anterior, incluye las siguientes instrucciones: TEST verifica CMP compara JMP salta JE, JZ salta si es igual a cero JNE, JNZ salta si no igual a cero JS salta si signo negativo JNS salta si signo no negativo JP, JPE salta si paridad par JNP, JOP salta si paridad impar JO salta si hay capacidad excedida JNO salta si no hay capacidad excedida JB, JNAE salta si por abajo (no encima o igual) JNB, JAE salta si no est por abajo (encima o igual) JBE, JNA salta si por abajo o igual (no encima) JNBE, JA salta si no por abajo o igual (encima) JL, JNGE salta si menor que (no mayor o igual) JNL, JGE salta si no menor que (mayor o igual) JLE, JNG salta si menor que o igual (no mayor) JNLE, JG salta si no menor que o igual (mayor) Instrucciones de Llamado y Retorno de Subrutinas. Para que los programas resulten eficientes y legibles tanto en lenguaje ensamblador como en lenguaje de alto nivel, resultan indispensables las subrutinas: CALL llamada a subrutina RET retorno al programa o subrutina que llam Instrucciones Aritmticas. Estas instrucciones son las que realiza directamente el 8086/8088

a. Grupo de adicin: ADD suma ADC suma con acarreo AAA ajuste ASCII para la suma DAA ajuste decimal para la suma b. Grupo de sustraccin: SUB resta SBB resta con acarreo negativo AAS ajuste ASCII para la resta DAS ajuste decimal para la resta c. Grupo de multiplicacin: MUL multiplicacin IMUL multiplicacin entera AAM ajuste ASCII para la multiplicacin d. Grupo de divisin: DIV divisin IDIV divisin entera AAD ajuste ASCII para la divisin e. Conversiones: CBW pasar octeto a palabra CWD pasar palabra a doble palabra NEG negacin f. Tratamiento de cadenas: Permiten el movimiento, comparacin o bsqueda rpida en bloques de datos: MOVC transferir carcter de una cadena MOVW transferir palabra de una cadena CMPC comparar carcter de una cadena CMPW comparar palabra de una cadena SCAC buscar carcter de una cadena SCAW buscar palabra de una cadena LODC cargar carcter de una cadena LODW cargar palabra de una cadena STOC guardar carcter de una cadena STOW guardar palabra de una cadena REP repetir CLD poner a 0 el indicador de direccin STD poner a 1 el indicador de direccin Instrucciones Lgicas. Son operaciones bit a bit que trabajan sobre octetos o palabras completas: NOT negacin AND producto lgico OR suma lgica XOR suma lgica exclusiva Instrucciones de Desplazamiento, Rotacin y Adeudos. Bsicamente permiten multiplicar y dividir por potencias de 2 SHL, SAL desplazar a la izquierda (desplazamiento aritmtico) SHR desplazar a la derecha SAR desplazamiento aritmtico a la derecha ROL rotacin a la izquierda ROR rotacin a la derecha RCL rotacin con acarreo a la izquierda RCR rotacin con acarreo a la derecha CLC borrar acarreo

STC poner acarreo a 1 Instrucciones de Pila. Una de las funciones de la pila del sistema es la de salvaguardar (conservar) datos (la otra es la de salvaguardar las direcciones de retorno de las llamadas a subrutinas): PUSH introducir POP extraer PUSHF introducir indicadores POPF extraer indicadores Instrucciones de Control del microprocesador. Hay varias instrucciones para el control de la CPU, ya sea a ella sola, o en conjuncin con otros procesadores: NOP no operacin HLT parada WAIT espera LOCK bloquea ESC escape Instrucciones de Interrupcin. STI poner a 1 el indicador de interrupcin CLI borrar el indicador de interrupcin INT interrupcin INTO interrupcin por capacidad excedida (desbordamiento) IRET retorno de interrupcin. Las instrucciones de transferencia condicional del control del programa se pueden clasificar en 3 grupos: 1. Instrucciones usadas para comparar dos enteros sin signo: a. JA o JNBE. Salta si est arriba o salta si no est abajo o si no es igual (jump if above o jump if not below or equal) El salto se efecta si la bandera ce CF = 0 o si la bandera de ZF = 0 b. JAE o JNB. Salta si est arriba o es igual o salta si no est abajo (jump if above or equal o jump if not below) El salto se efecta si CF = 0. c. JB o JNAE. Salta si est abajo o salta si no est arriba o si no es igual (jump if below or equal o jump if not above or equal) El salto se efecta si CF=1. d. JBE o JNA. Salta si est abajo o si es igual o salta si no est arriba (jump if below or equa o jump if not above) El salto se efecta si CF = 1. e. JE o JZ. Salta si es igual o salta si es cero (jump equal o jump if zero) El salto se efecta si ZF = 1 (tambin se aplica a comparaciones de enteros con signo) f. JNE o JNZ. Salta si no es igual o salta si no es cero (jump if not equal o jump if not zero) El salto se efecta si ZF = 0 (tambin se aplica a comparaciones de enteros con signo) 2. Instrucciones usadas para comparar dos enteros con signo: a. JG o JNLE. Salta si es ms grande o salta si no es menor o igual (jump if greater o jump if not less or equal) El salto se efecta si ZF = 0 o OF = SF. b. JGE o JNL. Salta si es ms grande o igual o salta si no es menor que (jump if greater or equal o jump if not less) El salto se efecta si SF = OF. c. JL o JNGE. Salta si es menor que o salta si no es mayor o igual (jump if less o jump if not greater or equal) El salto se efecta si SF = OF. d. JLE o JNG. Salta si es menor o igual o salta si no es ms grande (jump if less or equal o jump if not greater) El salto se efecta si ZF = 1 o SF = OF.

3. Instrucciones usadas segn el estado de banderas: a. JC Salta si hay acarreo (jump if carry) El salto se efecta si CF = 1. b. JNC Salta si no hay acarreo (jump if not carry) El salto se efecta si CF = 0. c. JNO Salta si no hay desbordamiento (jump if not overflow) El salto se efecta si OF = 0. d. JNP o JPO Salta si no hay paridad o salta si la paridad en non. El salto se efecta si PF= 0. e. JNS Salta si el signo est apagado (jump if not sign) El salto se efecta si SF = 0. f. JO Salta si hay desbordamiento (jump if overflow) El salto se efecta si OF = 1. g. JP o JPE Salta si hay paridad o salta si la paridad es par (jump if parity o jump if parity even) El salto se efecta si PF = 1. h. JS Salta si el signo est prendido (jump if sign set) El salto se efecta si SF = 1. 10.- Lenguaje maquina, macroensambladores del 8088. Los archivos deben terminar con la extensin ASM. Lenguaje de mquina del Intel 8088. El cdigo de mquina en hexadecimal se resalta en rojo, el equivalente en lenguaje ensamblador en magenta, y las direcciones de memoria donde se encuentra el cdigo, en azul. Abajo se ve un texto en hexadecimal y ASCII.

El trmino macroensamblador es usado para indicar que el ensamblador en cuestin tiene la capacidad de poder ensamblar programas con facilidad de macro. Una macro es una pseudo-instruccin que define un conjunto de instrucciones asociadas a un nombre simblico. Por cada ocurrencia en el cdigo de esta macro, el ensamblador se encarga de substituir esa llamada por todas las instrucciones asociadas y, en caso de existir, se dejan los parmetros con los que se estaba llamando la macro y no con los que haba sido definida. Es importante sealar que no se deja una llamada, como a una subrutina o procedimiento, sino que se incorporan todas las instrucciones que definen a la macro. 11.-Debugger y simuladores del 8088. Depuradores: - Turbo debugger, Microsoft windows debugger, etc Simuladores: - Emu8086, Microprocesssor Simulator 5.0 etc.

Editores de archivo fuente (*.ASM): - Edit, Blockde notas, TextPad, etc Ensambladores: - MASM, TASM, etc. Enlazadores: - TLINK, etc Otro software: - TLIB Creacin de libreras.

Depuradores.
- Borland Turbo Debugger

Turbo Debugger 1.0 (1989) la depuracin de un "hola, mundo" programa ensamblador Turbo Debugger es un depurador a nivel de mquina para MS-DOS ejecutables vendido por Borland. Esta herramienta proporciona un depurador de pantalla completa con poderosas capacidades para la observacin de la ejecucin de las instrucciones, supervisin registros de la mquina, etc - Microsoft windows debugger. El depurador de Microsoft Windows (WinDbg) se puede utilizar para depurar tanto en modo de usuario y los programas en modo kernel. Se utiliza Microsoft Visual Studio formatos de smbolos de depuracin para la depuracin a nivel fuente. Muestra los nombres de funciones y variables de los mdulos compilados usign el COFF (formato de archivo de objeto comn) opcin del vinculador. Le permite hacer lo siguiente: Paso a travs de su programa, ver el cdigo fuente Establecer puntos de interrupcin en el cdigo Ver registros de la CPU y banderas Ver el desmontaje de su programa Ver los valores de las variables del programa Ver la pila de tiempo de ejecucin Bloques de visualizacin de la memoria Realizar la depuracin remota en una red

Eso es slo una cara de lo que hace. Tambin es un depurador de modo de ncleo que depura las interfaces complejas entre las aplicaciones y MS-Windows

Simuladores.
- Emu8086. El Emulador EMU8086 es el primer programa que se utiliza en el curso de Microprocesadores que imparte la Universidad Don Bosco; se ha elegido este emulador porque posee una interfaz de usuario muy amistosa que permite familiarizarse con los fundamentos de la programacin en lenguaje ensamblador de forma muy intuitiva, a parte de eso brinda una serie de recursos para ejecutar y depurar los programas. Tambin tiene algunas desventajas como el de no soportar algunas de las interrupciones ms interesantes que posee el sistema operativo y tampoco puede acceder a los puertos fsicos (reales), sino que los emula usando otros programas que ya estn incluidos en su respectiva carpeta

- Microprocesssor Simulator 5.0. El simulador 5.0 del microprocesador x86 es un simulador del microprocesador basado en la arquitectura x86. Se piensa para los estudiantes que aprenden el nivel bajo que programa por primera vez. Se escribe para Windows 95 /98/NT/2000/XP. El simulador se basa en los ocho pedacitos bajos de la viruta 8086. Puede ser solo haber caminado o funcionar continuamente. Los registros de la CPU, y el contenido del ESPOLN se hacen visible. El simulador se programa en 8086 como cdigo de la asamblea. Esto est montada en el cdigo automtico que no es igual que el cdigo 8086. Es posible controlar los semforos simulados, siete exhibiciones de segmento, un calentador y un termstato, un motor de pasos, una elevacin y una serpiente en un laberinto. LLAMAR, ENRIAR, INTERNO, E IRET estn disponibles en la versin

registrada. Los problemas de programacin serios tienen gusto de multiplexar, los procedimientos, el pasar de parmetro, interrupciones y la repeticin puede ser abordada. Hay ayuda en lnea almacenada en un archivo de la ayuda de Windows. Esta mejora de V2.3 agrega un teclado y un teclado numrico numrico.

Bibliografia:

http://electrodig.files.wordpress.com/2011/04/clase-4-arquitectura-yprogramacion-de-un-micro.pdf http://www.monografias.com/trabajos-pdf/programacion-ensambladorprocesadores/programacion-ensamblador-procesadores.pdf http://azul2.bnct.ipn.mx/computacion5/Arquitectura%20del %20microprocesador/microprocesador_8088.pdf http://galia.fc.uaslp.mx/~cantocar/ARQUI_COM_II/8086_arq.pdf http://faculty.ksu.edu.sa/arafah/CEN433_Classnotes/Part1_8088.pdf http://antiguo.itson.mx/die/mdomitsu/bibliotecaDigital/Programacion_Lenguaje _Ensamblador8086/Tema02.pdf