Está en la página 1de 6

80386 Esta CPU es una gran ampliacin del 80286.

Primero extiende los registros para almacenar 32 bits ((EAX, EBX, ECX, EDX, ESI, EDI, EBP, ESP, EIP) y aade dos nuevos registros de 16 bits FS y GS. Tambin aade un nuevo modo protegido de 32 bits. En este modo pueden acceder hasta 4 Gigabytes. Los programas otra vez estn divididos en segmentos, pero ahora cada segmento tambin puede ser hasta de 4Giga bytes en tamao.

Registros de 32 bits del 80386 El 80386 y los procesadores posteriores tienen registros extendidos. Por ejemplo el registro de 16 bits AX se extendi para ser de 32 bits. Para la compatibilidad con sus predecesores, AX se reere al registro de 16 bits y EAX se usa para referirse al registro extendido de 32 bits. AX son los 16bits inferiores de EAX tal como AL son los 8 bits inferiores de AX (y EAX).No hay forma de acceder directamente a los 16 bits superiores de EAX. Los otros registros extendidos son EBX, ECX, EDX, ESI and EDI. Muchos de los otros registros se extienden tambin BP se convierte en EBP, SP se convierte en ESP, FLAGS en EFLAGS e IP en EIP. Sin embargo son diferentes los registros de ndice y los de propsito general, en el modo protegido de 32 bits (discutidos abajo) solo se usan las versiones extendidas de estos registros. Los registros de segmento continan siendo de 16 bits en el 80386. Hay tambin dos nuevos registros de segmento: FS y GS. Sus nombres no significan nada. Ellos son registros adicionales para segmentos temporales (como ES).Una de las definiciones del trmino Word se refiere a el tamao del registro de datos de la CPU. Para la familia 80x86, el trmino es ahora un poco confuso. Uno ve que Word esta denuda para ser 20 bytes(o 16 bits). Este fue el signicado que se le dio, cuando se lanz la primera vez el 8086. Cuando se desarroll el 80386, se decidi dejar la denicin de Word sin cambio, aunque el tamao del registro cambi.

Registros de propsito general Los ocho registros de propsito general de 32 bits mantienen datos y direcciones. Estos registros soportan operandos de 1, 8, 16, 32 y 64 bits y campos de bits de 1 a 32 bits. Soportan operandos de direcciones de 16 y de 32 bits. Los nombres simblicos son: EAX, EBX, ECX, EDX, ESI, EDI, EBP y ESP. Los 16 bits menos significativos se pueden acceder separadamente. Esto se hace usando los

nombres AX, BX, CX, DX, SI, DI, BP y SP, que se utilizan de la misma manera que en los procesadores previos. Al igual que en el 80286 divide y en anteriores, AX se CH y CL y DX se divide divide

en AH y AL, BX se en DH y DL.

divide

en BH y BL, CX se

Los ocho registros de uso general de 32 bits se pueden usar para direccionamiento indirecto. Cualquiera de los ocho registros puede ser la base y cualquiera menos ESP puede ser el ndice. El ndice se puede multiplicar por 1, 2, 4 u 8.

Puntero de instrucciones El puntero de instrucciones es un registro de 32 bits llamado EIP, el cual mantiene el offset de la prxima instruccin a ejecutar. El offset siempre es relativo a la base del segmento de cdigo (CS). Los 16 bits menos significativos de EIP conforman el puntero de instrucciones de 16 bits llamado IP, que se utiliza para direccionamiento de 16 bits.

Registro de indicadores Es un registro de 32 bits llamado EFlags. Los bits definidos y campos de bits controlan ciertas operaciones e indican el estado del 80386. Los 16 bits menos significativos (bits 15-0) llevan el nombre de Flags, que es ms til cuando se ejecuta cdigo de 8086 y 80286.

Registros de segmento del 80386 Son seis registros de 16 bits que mantienen valores de selectores de segmentos identificando los segmentos que se pueden direccionar. En modo protegido, cada segmento puede tener entre un byte y el espacio total de direccionamiento (4 gigabytes). En modo real, el tamao del segmento siempre es 64 KB.

Los seis segmentos direccionables en cualquier momento se definen mediante los registros de segmento CS, DS, ES, FS, GS, SS. El selector en CS indica el segmento de cdigo actual, el selector en SS indica el segmento de pila actual y los selectores en los otros registros indican los segmentos actuales de datos.

Registros descriptores de segmento: Estos registros no son visibles para el programador, pero es muy til conocer su contenido. Dentro del 80386, un registr descriptor (invisible

para el programador) est asociado con cada registro de segmento (visible para el programador). Cada descriptor mantiene una direccin base de 32 bits, un lmite (tamao) de 32 bits y otros atributos del segmento.

Cuando un selector se carga en un registro de segmento, el registro descriptor asociado se cambia automticamente con la informacin correcta. En modo real, slo la direccin base se cambia (desplazando el valor del selector cuatro bits hacia la izquierda), ya que el lmite y los otros atributos son fijos. En modo protegido, la direccin base, el lmite y los otros atributos se cargan con el contenido de una tabla usando el selector como ndice.

Siempre que ocurre una referencia a memoria, se utiliza automticamente el registro descriptor de segmento asociado con el segmento que se est usando. La direccin base de 32 bits se convierte en uno de los componentes para calcular la direccin, el lmite de 32 bits se usa para verificar si una referencia no supera dicho lmite (no se referencia fuera del segmento) y los atributos se verifican para determinar si hubo alguna violacin de proteccin u otro tipo.

Registros de control El 80386 tiene tres registros de control de 32 bits, llamados CR0, CR2 y CR3, para mantener el estado de la mquina de naturaleza global (no el especfico de una tarea determinada). Estos registros, junto con los registros de direcciones del sistema, mantienen el estado de la mquina que afecta a todas las tareas en el sistema. Para acceder los registros de control, se utiliza la instruccin MOV.

CR0 (Registro de control de la mquina): Contiene seis bits definidos para propsitos de control y estado. Los 16 bits menos significativos de CR0 tambin se conocen con el nombre de palabra de estado de la mquina (MSW), para la compatibilidad con el modo protegido del 80286. Las instrucciones LM, SW y SM, SW se toman como casos particulares de carga y almacenamiento de CR0 donde slo se opera con los 16 bits menos significativos de CR0. Para lograr la compatibilidad con sistemas operativos del 80286 la instruccin LMSW opera en forma idntica que en el 80286 (ignora los nuevos bits definidos en CR0).

CR2 (Direccin lineal de falta de pgina): Mantiene la direccin lineal de 32 bits que caus la ltima falta de pgina detectada. El cdigo de error puesto en la pila del manejador de la falta de pgina cuando se la invoca provee informacin adicional sobre la falta de pgina.

Un cambio de tareas a travs de un TSS que cambie el valor de CR3, o una carga explcita de CR3 con cualquier valor, invalidar todas las entradas en la tabla de pginas que se encuentran en el cach de la unidad de paginacin. Si el valor de CR3 no cambia durante el cambio de tareas se considerarn vlidos los valores almacenados en el cach.

Registros de la arquitectura base Tipo Registros EAX EBX ECX Uso general EDX ESI EDI EBP ESP CS SS De segmento DS ES FS GS EIP Otros EFlags EFlags31-16 EIP31-16 No aplicable: estos registros son de 16 bits EAX31-16 EBX31-16 ECX31-16 EDX31-16 ESI31-16 EDI31-16 EBP31-16 ESP31-16 Bits 31-16 Bits 15-0 EAX15-0 = AX EBX15-0 = BX ECX15-0 = CX EDX15-0 = DX ESI15-0 = SI EDI15-0 = DI EBP15-0 = BP ESP15-0 = SP CS SS DS DS DS DS EIP15-0 = IP EFlags150 = Flags Puntero instrucciones Indicadores de Segmentos datos extra de Descripcin Acumulador Base Contador Datos ndice Fuente ndice Destino Puntero Base Puntero de Pila Segmento cdigo Segmento de pila Segmento de datos de

También podría gustarte