introducción_arquitectura

23
Introducción En este capítulo se presenta el microprocesador como un dispositivo programable, primero buscando en su modelo de programación interna y luego en la forma en que se dirige a su espacio de memoria. Los modos de direccionamiento para la familia Intel de microprocesadores se describen tanto para los modos reales y protegidas de operación. Existe memoria de modo real en lugares 00000h-FFFFFH el primer byte de la memoria 1M sistema y está presente en todas las versiones del microprocesador. Existe memoria de modo protegido en cualquier lugar en todo el sistema de memoria, pero sólo está disponible para el 80286-Pentium II, no a los anteriores 8.086 o 8.088 microprocesadores. Memoria de modo protegido para el 80286 bytes contiene 16 millones; para el 80386-Pentium, 4G bytes; y para los bytes Pentium Pro y Pentium II, ya sea 4G o 64G.

Upload: hernanyovera

Post on 12-Sep-2015

214 views

Category:

Documents


0 download

DESCRIPTION

microprocesador 80286

TRANSCRIPT

Introduccin

En este captulo se presenta el microprocesador como un dispositivo programable, primero buscando en su modelo de programacin interna y luego en la forma en que se dirige a su espacio de memoria. Los modos de direccionamiento para la familia Intel de microprocesadores se describen tanto para los modos reales y protegidas de operacin. Existe memoria de modo real en lugares 00000h-FFFFFH el primer byte de la memoria 1M sistema y est presente en todas las versiones del microprocesador. Existe memoria de modo protegido en cualquier lugar en todo el sistema de memoria, pero slo est disponible para el 80286-Pentium II, no a los anteriores 8.086 o 8.088 microprocesadores. Memoria de modo protegido para el 80286 bytes contiene 16 millones; para el 80386-Pentium, 4G bytes; y para los bytes Pentium Pro y Pentium II, ya sea 4G o 64G.

2.1. Microprocesador Arquitectura Interna

Antes de que un programa est escrito o cualquier instruccin investig, la configuracin interna de la microprocessor debe ser conocido. Esta seccin del captulo se detalla el architecture interna-programa visible del 8.086 a 80486 y el II microprocesadores Pentium Pentium. Tambin se detallan la funcin y el propsito de cada uno de estos registros internos.

2.1.1. El modelo de programacinEl modelo de programacin del 8086 a travs del Pentium II considera que el programa visible debido a que sus registros se utilizan durante la programacin de aplicaciones y se especifican en las instrucciones. Otros registros, que se detallan ms adelante en este captulo, se consideran programa invisible porque no son direccionables directamente durante la programacin de aplicaciones, pero se pueden usar indirectamente durante la programacin del sistema. Slo el 80 286 y por encima contienen los registros relacionados con los programas invisibles utilizados para controlar y operar el sistema de memoria protegida.Figura 2-1 ilustra el modelo de programacin del 8086 a travs del microprocesador Pentium II. Mientras ms temprano 8086, 8088 y 80286 contienen arquitecturas internas de 16 bits, un subconjunto de los registros. El 80386, 80486, Pentium, Pentium Pro y Pentium II microprocesadores contienen completos arquitecturas internas de 32 bits. Las arquitecturas de la anterior 8086 a travs del 80 286 son totalmente compatibles hacia arriba a la 80386 a travs del Pentium II. Las reas sombreadas en esta ilustracin representan registros que no se encuentran en los 8.086, 8.088 o 80.286 microprocesadores.

El modelo de programacin contiene 8, 16, y 32 bits registros. Los registros de 8 bits son AH, AL, BH, BL, CH, CL, DH y DL y se hace referencia a cuando se forma una instruccin utilizando estas designaciones de dos letras. Los registros de 16 bits son AX, BX, CX, DX, SP, BP, DI, SI, IP, BANDERAS, CS, DS, ES, SS, FS, y GS. Los registros de 32 bits extendidos son EAX, EBX, ECX, EDX, ESP, EBP, EDI, ESI, EIP, y EFLAGS. Estos registros extendidos de 32 bits y 16 bits registros ES y GS estn disponibles slo en el 80386 y superiores.Algunos registros son registros de propsito general o de usos mltiples, mientras que algunos tienen efectos especiales. Los registros de usos mltiples incluyen EAX, EBX, ECX, EDX, EBP, EDI, y ESI. Estos registros tienen diferentes tamaos de datos (bytes, palabras o palabras dobles) y se utilizan para casi cualquier propsito, segn lo dictado por un programa.

EAX (accumulator)EAX se hace referencia como un registro de 32 bits (EAX), como un registro de 16 bits (AX), o como cualquiera de los dos registros de 8 bits (AH y AL). Tenga en cuenta que si se dirige un registro de 8 o 16 bits, slo la parte de la 32-bit de registro de cambios sin afectar a los bits restantes. El accumulator se utiliza para instrucciones tales como la multiplicacin, divisin, y algunas de las instrucciones de ajuste. Para estas instrucciones, el acumulador tiene un propsito especial, pero en general se considera que es un registro de usos mltiples. En el 80.386 y por encima de, el registro EAX tambin puede contener la direccin de desplazamiento de una ubicacin en el sistema de memoria

EBX (ndice base)EBX es direccionable como EBX, BX, BH o BL. El registro BX a veces contiene la direccin de desplazamiento de una ubicacin en el sistema de memoria en todas las versiones del microprocesador. En el 80.386 y por encima de, EBX tambin puede abordar datos de la memoria.

ECX (recuento)ECX es un registro de propsito general que tambin lleva a cabo el recuento de diversas instrucciones. En el 80386 y superiores, el registro ECX tambin puede contener la direccin de desplazamiento de datos de la memoria. Instrucciones que utilizan un recuento son las instrucciones de cadenas repetidas (REP / repe / REPNE); y las instrucciones de turno, rotar, y LOOP / LOOPD. El desplazamiento y rotacin instrucciones utilizan CL como el conteo, las instrucciones de cadenas repetidas utilizan CX, y las instrucciones de LOOP / LOOPD utilizan ya sea CX o ECX.

EDX (datos)EDX es un registro de propsito general que tiene una parte del resultado de una multiplicacin o parte del dividendo antes de una divisin. En el 80386 y superiores, este registro tambin puede tratar los datos de la memoria.

EBP (puntero base)EBP apunta a una posicin de memoria en todas las versiones del microprocesador para las transferencias de datos de memoria. Este registro se dirige ya sea como BP o EBP.

ESI (ndice de fuente)ESI se utiliza ya sea como ESI o SI. El registro de ndice fuente a menudo se ocupa de datos de cadena de origen para las instrucciones de cadena. Como EDI, ESI tambin funciona como un registro de propsito general. Como registro de 16 bits, se dirige como SI; como un registro de 32 bits, se dirige como ESI.

2.1.1.2. Registros de propsito especial.Los registros de propsito especial incluyen EIP, ESP, EFLAGS; y el segmento registra CS, DS, ES, SS, FS, y GS.

EIP (puntero de instruccin)EIP se dirige a la siguiente instruccin en una seccin de memoria se define como un segmento de cdigo. Este registro es IP (16 bits) cuando el microprocesador opera en el modo real y EIP (32 bits) cuando el 80.386 y por encima de operar en el modo protegido. Tenga en cuenta que el 8086, 8088 y 80286 Qu contienen EIP, y slo el 80 286 y por encima de operar en el modo protegido. El puntero de instruccin, que apunta a la siguiente instruccin en un programa, es utilizado por el microprocesador para encontrar la siguiente instruccin secuencial en un programa ubicado dentro del segmento de cdigo. El puntero de la instruccin puede ser modificado con un salto o una instruccin de llamada.

ESP (puntero de pila)ESP ocupa un rea de memoria llamada la pila. Los datos de memoria almacena la pila a travs de este puntero. Este registro se denomina SP si se utiliza como un registro de 16-hit y ESP si se refiere como un registro de 32 bits.

EFLAGSEFLAGS indican la condicin del microprocesador y controlan su funcionamiento. Figura 2-2 muestra los registros de la bandera de todas las versiones del microprocesador. Tenga en cuenta que las banderas son compatibles hacia arriba desde el 8086/8088 al microprocesador Pentium II. El 8086-80.286 contienen un registro FLAG (16 bits) y el 80.386 y por encima de contener un registro eFlag (32-bit de registro de la bandera extendida).

Los cinco bits ms a la derecha de la bandera y el cambio de la bandera de desbordamiento despus de muchos instructions aritmticas y lgicas se ejecutan. Las banderas nunca cambian para cualquier operacin de transferencia de datos o el control del programa. Algunas de las banderas tambin se utilizan para controlar caractersticas que se encuentran en el microprocesador. A continuacin se presenta una lista de cada bit de bandera, con una breve descripcin de su funcin.

C (carry)Carry tiene el equipaje despus de la adicin o el prstamo despus de la sustraccin. La bandera de acarreo tambin indica las condiciones de error, segn lo dictado por algunos programas y procedimientos. Esto es especialmente cierto de las llamadas de funcin de DOS.

P (paridad)La paridad es una lgica 0 para paridad impar y un 1 lgico para la paridad par. La paridad es un recuento de los de un nmero expresado como par o impar.Si un nmero contiene cero bits de uno, tiene paridad par. La bandera de paridad encuentra poca aplicacin en la programacin moderna y fue implementado en microprocesadores Intel principios para el control de datos en entornos de comunicaciones de datos. Comprobacin de paridad Hoy a menudo se lleva a cabo el equipo de comunicaciones de datos en lugar del microprocesador.

A (acarreo auxiliar)El acarreo auxiliar tiene el acarreo (carry-medio) despus de la adicin o el prstamo despus de la sustraccin entre bits posiciones 3 y 4 del resultado. Este bit bandera altamente especializado es probado por las instrucciones DAA y del DAS para ajustar el valor de AL despus de una adicin o sustraccin BCD. De lo contrario, el bit bandera no es utilizado por el microprocesador o cualquier otra instruccin.

Z (cero)La bandera cero muestra que el resultado de una operacin aritmtica o lgica es cero. Si Z = 1, el resultado es cero; si Z = 0, el resultado no es cero.

S (signo)La bandera signo tiene el signo aritmtico de los resultados despus de un aritmticas o lgicas ejecuta instrucciones. Si S = 1, el bit de signo (ms a la izquierda de golpear a un nmero) se establece o negativo; si S = 0, el bit de signo se borra o positivo.T (trampa)La bandera trampa permite la captura a travs de una caracterstica de depuracin en el chip. (Un programa est depurando para encontrar un error o error.) Si la bandera T se activa (1), el microprocesador interrumpe el flujo del programa sobre condiciones indicadas por los registros de depuracin y registros de control. Si la bandera de T es un 0 lgico, la funcin de captura (depuracin) est desactivada.

I (interrupcin)La bandera de interrupcin controla el funcionamiento de la INTR (solicitud de interrupcin) pin de entrada. Si I = 1. el pasador INTR est habilitado: si = 0, el pin INTR est desactivado. El estado del bit de bandera que es controlado por el ITS (conjunto I Bandera) y CLI (clara bandera I) instrucciones.

D (direccin)El indicador de direccin selecciona o bien el incremento o decremento para el modo de Dl y / o SI registra durante instrucciones de cadena. Si D = 1, los registros se decrementa automticamente: si D = 1, los registros se incrementan automticamente. La bandera D se ajusta con el ETS (direccin set) y se aclar con los (direccin clara) Instrucciones CLD.

0 (desbordamiento)Desbordamientos ocurre cuando se suman o restan nmeros con signo. Un desbordamiento indica que el resultado ha excedido la capacidad de la mquina. Para operaciones sin firmar, se ignora la bandera de desbordamiento.

IOPL (I / 0 el nivel de privilegio)IOPL se utiliza en el funcionamiento en modo protegido para seleccionar el nivel de privilegio para los dispositivos de E / S. Si el nivel de privilegio actual es mayor o ms grande que el IOPL, E / S se ejecuta sin obstculos. Si el IOPL es menor que el nivel de privilegio actual, se produce una interrupcin, causando ejecucin para suspender. Tenga en cuenta que un IOPL de 00 es la ms alta o ms grande: si IOPL es 11, es la ms baja o menos confianza.

NT (tarea anidada)La bandera tarea anidada indica que la tarea actual est anidada dentro de otra tarea en la operacin en modo protegido. Esta lnea se establece cuando la tarea se anida por el software.RF (hoja de vida)La bandera de reanudacin se utiliza con la depuracin para controlar la reanudacin de la ejecucin despus de la siguiente instruccin.

VM (modalidad virtual)El bit de bandera VM selecciona el funcionamiento en modo virtual en un sistema de modo protegido. Un sistema de modo virtual permite mltiples particiones memoria DOS que son 1M byte de longitud para coexistir en el sistema de memoria. En esencia, esto permite que el programa de sistema para ejecutar mltiples programas de DOS.

VM (modalidad virtual)El bit de bandera VM selecciona el funcionamiento en modo virtual en un sistema de modo protegido. Un sistema de modo virtual permite mltiples particiones de memoria DOS que son 1M byte de longitud para coexistir en el sistema de memoria. En esencia, esto permite que el programa de sistema para ejecutar mltiples programas

AC (verificacin de alineacin)La comprobacin de la alineacin de la bandera de bits se activa si una palabra o douhleword se dirige en una no-palabra o lmite no douhleword. Slo el microprocesador 80486SX contiene el hit de verificacin de alineacin que se utiliza principalmente por su coprocesador numrico compaero, el 80487SX, para la sincronizacin

VIF (indicador de interrupcin virtual)El VIF es una copia de la bandera de bits de interrupcin a disposicin del Pentium Pentium II microprocesadores.VIP (pendiente de interrupcin virtual)VIP proporciona informacin acerca de una interrupcin de modo virtual para los microprocesadores Pentium Pentium II. Esto se utiliza en entornos multitarea para proporcionar el sistema operativo con banderas de interrupcin virtuales e interrumpir informacin pendiente.ID (identificacin)La bandera de identificacin indica que los microprocesadores Pentium Pentium II apoyan la instruccin CPUID. La instruccin CPUID proporciona al sistema informacin sobre el microprocesador Pentium, tal como su nmero de versin y el fabricante.

2.1.1.3. Registros de segmentoRegistros adicionales, llamados registros de segmento, generan direcciones de memoria cuando se combina con otros registros en el microprocesador. Hay cuatro o seis registros de segmento en varias versiones del microprocesador. A las funciones de registro de segmento diferente en el modo real en comparacin con el funcionamiento en modo protegido del microprocesador. A continuacin se presenta una lista de cada registro de segmento, adems de su funcin en el sistema:CS (cdigo)El segmento de cdigo es una seccin de memoria que contiene el cdigo (programas y procedimientos) utilizados por el microprocesador. El registro de segmento de cdigo define la direccin de inicio de la seccin de cdigo de retencin de memoria. Durante el funcionamiento en modo real, se particulariza el comienzo de una seccin de 64K bytes de la memoria; en modo protegido, selecciona un descriptor que describe la direccin de partida y la duracin de una seccin de cdigo de memoria celebracin. El segmento de cdigo se limita a 64K bytes en el 8088 a 80.286, y 4G bytes en el 80.386 y por encima de estos microprocesadores cuando operan en el modo protegido.

DS (datos)El segmento de datos es una seccin de memoria que contiene la mayora de los datos utilizados por un programa. Se accede a los datos en el segmento de datos mediante una direccin de desplazamiento o el contenido de otros registros que mantienen la direccin de desplazamiento. Al igual que con el segmento de cdigo y otros segmentos, la longitud se limita a 64K bytes en el 8086-80286, y 4G bytes en el 80386 y superiores.ES (extra)El segmento extra es un segmento adicional de datos que es utilizado por algunas de las instrucciones de cadena para almacenar los datos de destino.SS (pila)El segmento de pila define el rea de memoria utilizada para la pila. El punto de entrada de la pila est determinado por los registros de segmento de pila y el puntero de pila. El registro de BP tambin se ocupa de los datos dentro del segmento de pila.FS y GSLos segmentos de FS y GS son registros de segmento suplementarios disponibles en el 80386, 80486, Pentium. y Pentium Pro microprocesadores que permiten que dos segmentos de memoria adicionales para el acceso de los programas.

2.2. Memoria Modo Real Dirigindose El 80.286 y por encima de funcionar tanto en el modo real o protegido. Slo el 8086 y 8088 operan exclusivamente en el modo real. El funcionamiento en modo real permite al microprocesador para hacer frente a slo el primer byte de la memoria del espacio, incluso si es el microprocesador Pentium II 1M. Tenga en cuenta que el primer byte 1 M de memoria se llama la memoria, ya sea real o sistema de memoria convencional. El sistema operativo DOS requiere el microprocesador para operar en el modo real. El funcionamiento en modo real permite que el software de aplicacin escrito para la 8086/8088, que contienen solamente 1 M byte de la memoria, para funcionar en el 80 286 y por encima sin cambiar el software. La compatibilidad ascendente de software es parcialmente responsable por el xito continuo de la familia Intel de microprocesadores. En todos los casos, cada uno de estos microprocesadores comienza la operacin en el modo real de forma predeterminada cada vez que se aplica la alimentacin o el microprocesador se restablece.

2.2.1. Segmentos y desplazamientos Una combinacin de una direccin de segmento y una direccin de desplazamiento, accede a una ubicacin de memoria en el modo real. Todas las direcciones de memoria en modo real deben consistir en una direccin de segmento ms una direccin de desplazamiento. La direccin de segmento, que se encuentra dentro de uno de los registros de segmento, define la direccin inicial de cualquier segmento de memoria de 64K bytes. La direccin de desplazamiento selecciona cualquier ubicacin dentro del segmento de memoria de 64K bytes. Segmentos en el modo real siempre tienen una longitud de 64K bytes. Figura 2-3 muestra cmo el segmento ms offset esquema de direccionamiento selecciona una ubicacin de memoria. Esta ilustracin muestra un segmento de memoria que comienza en la posicin 1 0000H y termina en la posicin 1 bytes FFFEH 64K de longitud. Tambin muestra cmo una direccin de desplazamiento, a veces llamado un desplazamiento, de F000h selecciona ubicacin 1F000H en el sistema de memoria. Tenga en cuenta que el desplazamiento o el desplazamiento es la distancia por encima del inicio del segmento, como se muestra en la Figura 2-3.El registro de segmento en la figura 2.3 contiene una 1000H, sin embargo, se dirige a un segmento a partir de la ubicacin 10000H. En el modo real, cada registro de segmento se aade internamente con un 0H en su extremo ms a la derecha. Esto forma una direccin de memoria de 20 bits, lo que le permite acceder al inicio de un segmento. El microprocesador debe generar una direccin de memoria 20-hit para acceder a una ubicacin dentro de la primera 1 M de memoria. Por ejemplo, cuando un registro de segmento contiene un 1200H, se dirige a un segmento de memoria de 64K bytes comenzando en la ubicacin 12000H. Del mismo modo, si un registro de segmento contiene una 1201H, que se dirige a un segmento de memoria que comienza en lugar 12010H. Debido a la 0H adjunta internamente, los segmentos de modo real pueden comenzar slo a un lmite de 16 bytes en el sistema de memoria. Este lmite de 16 bytes a menudo se llama un prrafo.

Debido a que un segmento de modo real de la memoria es de 64 K de longitud, una vez que se conoce la direccin de inicio, la direccin final se encuentra sumando FFFFH.La direccin de desplazamiento, que es una parte de la direccin, se aade a la de inicio del segmento para hacer frente a una ubicacin de memoria dentro del segmento de memoria. Por ejemplo, si la direccin de segmento es 1000H y la direccin de desplazamiento es 2000H, el microprocesador direcciones de ubicacin de memoria 12000H. La direccin de desplazamiento se aade siempre a la direccin inicial del segmento de localizar los datos. La direccin de segmento y el desplazamiento se escribe a veces como 1000: 2000 para una direccin de segmento de 1000H con un desplazamiento de 2000H.

En el 80286 (con circuitera externa especial), y el 80.386 a travs de la Pentium II, un 64K adicional menos 16 bytes de memoria es direccionable cuando la direccin de segmento es FFFFH y el conductor HIMEM.sys est instalado en el sistema. Esta rea de memoria (0FFFF0H-10FFEFH) se conoce como memoria alta.Algunos modos de direccionamiento combinan ms de un registro y un valor de desplazamiento para formar una direccin de desplazamiento. Cuando esto ocurre, la suma de estos valores puede exceder FFFFH. Por ejemplo, la direccin se accede en un segmento cuyo segmento de direccin es 4000H, y compensar cuya direccin se especifica como la suma de F000h ms 3000H, acceder a la ubicacin de memoria 42000H lugar de ubicacin 52000H. Cuando se aaden la F000h y 3000H, forman un 16-bit (mdulo 16) suma de 2000H se utiliza como la direccin de desplazamiento; No 12000H, la verdadera suma. Tenga en cuenta que el acarreo de 1 (F000h + 3000H = 12000H) se deja caer para esta adicin para formar la direccin de desplazamiento de 2000H. Esto significa que la direccin se genera como 4000: 2000 o 42000H.

2.2.2. Segmento predeterminado y Offset RegistrosEl microprocesador tiene un conjunto de reglas que se aplican a segmentos cada vez que se dirigi a la memoria, Estas reglas, que se aplican en el modo real y protegido, definen el registro de segmento y compensados registrarse combinacin. Por ejemplo, el registro de segmento de cdigo se utiliza siempre con el puntero de instruccin para hacer frente a la siguiente instruccin en un programa. Esta combinacin es CS: IP o CS: EIP, dependiendo del modo del microprocesador de la operacin. El registro de segmento de cdigo define el inicio del segmento de cdigo y el puntero de instruccin localiza la siguiente instruccin dentro del segmento de cdigo. Esta combinacin (CS: IP o CS: EIP) localiza la siguiente instruccin ejecutada por el microprocesador.Otra de las combinaciones por defecto es la pila. Pila datos estn referenciados a travs del segmento de pila en la ubicacin de memoria direccionada por cualquiera el puntero de pila (SP / ESP) o el puntero base (BP / EBP). Estas combinaciones se conocen como SS: SP (SS: ESP) o SS: BP (SS: EBP). Tenga en cuenta que en modo real, slo los 16 bits de ms a la derecha la direccin del registro extendido una ubicacin dentro del segmento de memoria. En el 80386-Pentium II, nunca coloque un nmero mayor que FFFFH en un desplazamiento registro si el microprocesador se opera en el modo real. Esto hace que el sistema para detener e indicar un error de direccionamiento.Otros valores predeterminados se muestran en la Tabla 2-1 para abordar memoria utilizando cualquier microprocesador Intel con registros de 16 bits. Tabla 2-2 muestra los valores predeterminados asumidos en el 80.386 y por encima al utilizar registros de 32 bits. Tenga en cuenta que el 80.386 y por encima tienen una mucho mayor seleccin de desplazamiento del segmento combinaciones de direcciones de hacer lo 8086 a travs de los 80.286 microprocesadores.

Los 8086-80.286 microprocesadores permiten cuatro segmentos de memoria y el 80.386 y por encima de permiten seis segmentos de memoria. La Figura 2-4 muestra un sistema que contiene cuatro segmentos de memoria. Tenga en cuenta que un segmento de memoria puede tocar o incluso solaparse si no se requieren 64K bytes de memoria para un segmento. Piense en segmentos como ventanas que se pueden mover a travs de cualquier rea de la memoria con los datos de acceso o cdigo. Tambin tenga en cuenta que un programa puede tener ms de cuatro o seis segmentos, pero slo se puede acceder a cuatro o seis segmentos a la vez.Supongamos que un programa de aplicacin requiere 1000H bytes de memoria de su cdigo, bytes 190h de memoria para sus datos y bytes 200H de memoria para su pila. Esta aplicacin no requiere un segmento extra. Cuando este programa se coloca en el sistema de memoria por el DOS, se carga en el TPA en la primera rea disponible de memoria por encima de los conductores y otros programas de TPA. Esta zona se indica mediante un puntero-libre que sea mantenida por DOS. Programa de carga se maneja automticamente por el programa cargador ubicado dentro DOS. Figura 2-5 muestra cmo esta aplicacin se almacena en el sistema de memoria. Los segmentos muestran una superposicin porque la cantidad de datos en ellos no requiere 64K bytes de memoria. La vista lateral de los segmentos muestra claramente la superposicin. Tambin muestra cmo los segmentos se pueden mover por encima de cualquier rea de la memoria al cambiar la direccin de inicio del segmento. Afortunadamente, el cargador de programa de DOS calcula y asigna direcciones de segmento inicial.