Documente Academic
Documente Profesional
Documente Cultură
Usándolo se produce (en general) una instrucción que ocupa un byte menos que
si se utilizaran otros registros de uso general. Su parte más baja, AL, también
tiene esta propiedad. El último registro mencionado es el equivalente al
acumulador de los procesadores anteriores (8080 y 8085). Además hay
instrucciones como DAA; DAS; AAA; AAS; AAM; AAD; LAHF; SAHF; CBW; IN y
OUT que trabajan con AX o con uno de sus dos bytes (AH o AL). También se
utiliza este registro (junto con DX a veces) en multiplicaciones y divisiones.
Aunque es un registro de uso general, debe utilizarse sólo como puntero de pila, la
cual sirve para almacenar las direcciones de retorno de subrutinas y los datos
temporarios (mediante las instrucciones PUSH y POP). Al introducir (push) un
valor en la pila a este registro se le resta dos, mientras que al extraer (pop) un
valor de la pila este a registro se le suma dos.
Sirve como puntero fuente para las operaciones con cadenas. También sirve para
realizar direccionamiento indirecto.
DI = Puntero destino (no se puede subdividir).
Sirve como puntero destino para las operaciones con cadenas. También sirve para
realizar direccionamiento indirecto.
Indicadores (flags)
Hay nueve indicadores de un bit en este registro de 16 bits. Los cuatro bits más
significativos están indefinidos, mientras que hay tres bits con valores
determinados: los bits 5 y 3 siempre valen cero y el bit 1 siempre vale uno
PF (Parity Flag, bit 2): Si vale uno, el resultado tiene paridad par, es decir, un
número par de bits a 1. Este indicador se puede utilizar para detectar errores en
transmisiones.
AF (Auxiliary carry Flag, bit 4): Si vale 1, indica que hubo "arrastre" o "préstamo"
del nibble (cuatro bits) menos significativo al nibble más significativo. Este
indicador se usa con las instrucciones de ajuste decimal.
ZF (Zero Flag, bit 6): Si este indicador vale 1, el resultado de la operación es cero.
SF (Sign Flag, bit 7): Refleja el bit más significativo del resultado. Como los
números negativos se representan en la notación de complemento a dos, este bit
representa el signo: 0 si es positivo, 1 si es negativo.
TF (Trap Flag, bit 8): Si vale 1, el procesador está en modo paso a paso. En este
modo, la CPU automáticamente genera una interrupción interna después de cada
instrucción, permitiendo inspeccionar los resultados del programa a medida que se
ejecuta instrucción por instrucción.
DF (Direction Flag, bit 10): Si vale 1, las instrucciones con cadenas sufrirán "auto-
decremento", esto es, se procesarán las cadenas desde las direcciones más altas
de memoria hacia las más bajas. Si vale 0, habrá "auto-incremento", lo que quiere
decir que las cadenas se procesarán de "izquierda a derecha".
OF (Overflow flag, bit 11): Si vale 1, hubo un desborde en una operación aritmética
con signo, esto es, un dígito significativo se perdió debido a que tamaño del
resultado es mayor que el tamaño del destino.
Microprocesador 80486
Este microprocesador es básicamente un 80386 con el agregado de una unidad
de punto flotante compatible con el 80387 y un caché de memoria de 8 KBytes.
Los ocho registros de propósito 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
simbólicos 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. AX se divide en AH y AL, BX se divide
en BH y BL, CX se divide en CH y CL y DX se divide en DH y DL.
• BX, BH, BL (Base): Se utiliza para guardar la dirección base de listas de datos en
la memoria.
Registros de segmento
Registro de banderas
• VM (modo virtual): Se activa este bit mientras que el 80486 se opere en el modo
protegido.
• NT (tarea anidada): Se activa para indicar que el 80486 está realizando una tarea
que está anidada en otra tarea.
• OF (sobre flujo): Indica que el resultado de una operación aritmética con signo ha
rebasado la capacidad del destino.
• LRU: cuando se lee este campo se obtiene el valor de los tres bits usados en el
algoritmo de reemplazo seudo-LRU de la caché.
• PL: Corresponde con el bit HT del TR7 del 386. En el 486 se puede escribir a
uno o cero.
TR4
• LRU.
• V: bit de validación de la vía concreta que ha sido accedida entre las 4 que
pertenecen al mismo sector.
TR5
• CTL:
Microprocesador Pentium
* Registro EFLAGS: Este registro de 32 bits contiene una serie de banderas (flags)
que tienen diversos usos. Algunas reflejan el estado del procesador y otras
controlan su ejecución.
* Bits de estado: Reflejan el estado actual del procesador. Son bits de estado: OF,
SF, ZF, AF y PF.
* Bits del sistema: Los bits ID, VIP, VIF, AC, VM, RF, NT, IOPL, IF y TF son
usados por el procesador para determinar condiciones en su ejecución, o para
habilitar / deshabilitar determinadas características. Por ejemplo, estableciendo el
bit IF en 1 se habilitan las interrupciones, mientras un valor de 0 en este bit
deshabilita las interrupciones.
* Bits reservados: Estos bits marcados con un color diferente se reservan por la
arquitectura IA-32 para futura expansión. Deben permanecer con los valores que
se muestran en la figura (cero o uno). No se deben usar, ya que es posible que en
versiones posteriores de los procesadores IA-32 tengan un significado específico.
Los bits más importantes de CR0 desde el punto de vista de programación son el
bit 0 (Protection Enable – PE), y el bit 31 (Paging – PG). Estos permiten habilitar el
modo protegido y la paginación, respectivamente.