fbpx
Wikipedia

Registro FLAGS

El registro FLAGS es el registro de estado en los microprocesadores Intel x86 que contiene el estado actual del procesador. Este registro es de 16 bits de ancho. Sus sucesores, los registros EFLAGS y RFLAGS, son de 32 bits y 64 bits de ancho, respectivamente. El más amplio de los registros mantiene la compatibilidad con sus predecesores más pequeños.

Los bits fijos en las posiciones de bit 1,3 y 5, y las banderas de acarreo (carry), paridad (parity), ajuste (adjust), cero (zero) y signo (sign) se heredan de una arquitectura aún anterior, la 8080.La bandera de ajuste solía denominarse bit de transporte auxiliar (auxiliary carry) en 8080 y bit de transporte (half-carry) en la arquitectura Zilog Z80.

BANDERAS

Registro FLAGS Intel x86[1]
Bit# Abreviatura Descripción Categoría
FLAGS (Banderas)
0 CF Bandera de acarreo Estado
1 Reservado, siempre 1 en EFLAGS[2]
2 PF Bandera de paridad Estado
3 Reservado
4 AF Bandera de ajuste Estado
5 Reservado
6 ZF Bandera de cero Estado
7 SF Bandera de signo Estado
8 TF Bandera de trampa (paso único) Control
9 IF Bandera de interrupción habilitada Control
10 DF Bandera de dirección Control
11 OF Bandera de desbordamiento Estado
12-13 IOPL Nivel de privilegio de E/S (Solo 286+), siempre 1 encima 8086 y 186 Sistema
14 NT Bandera de tarea anidada (Solo 286+), siempre 1 en 8086 y 186 Sistema
15 Reservado, siempre 1 en 8086 y 186, siempre 0 en modelos más recientes.
EFLAGS
16 RF Bandera de resumen (Solo 386+) Sistema
17 VM Bandera de modo Virtual 8086 (Solo 386+) Sistema
18 AC Control de alineación (Solo 486SX+ ) Sistema
19 VIF Bandera de interrupción virtual (Pentium+) Sistema
20 VIP Interrupción virtual pendiente (Pentium+) Sistema
21 ID Capaz de utilizar instrucción CPUID (Pentium+) Sistema
22 Reservado
23 Reservado
24 Reservado
25 Reservado
26 Reservado
27 Reservado
28 Reservado
29 Reservado
30 Reservado
31 Reservado
RFLAGS
32-63 Reservado

USO

Las instrucciones POPF, POPFD, y POPFQ lee del stack, los primeros 16, 32, y 64 bits del registro de banderas, respectivamente. POPFD fue introducido con la arquitectura i386 (Intel 80386) y POPFQ con la arquitectura x64 . En el modo 64-bit, PUSHF/POPF y PUSHFQ/POPFQ están disponible pero no PUSHFD/POPFD.[3]

El código assembler siguiente cambia la bandera de dirección (DF):

pushf; Desplaza las banderas actuales a la pila pop ax; Pone las banderas de la pila en el registro ax push ax; Desplaza de nuevo en la pila para el almacenaje xor ax, 400h; Activar sólo la bandera DF, mantener el resto de las banderas. push ax; Desplaza de nuevo para añadir el nuevo valor a la pila popf; Desplaza el nuevo registro FLAGS ;... Código aquí... popf; Coloca las viejas banderas en su lugar 

En software práctico, las instrucciones cld y stdson usadas para limpiar y configurar la bandera de dirección, respectivamente. Algunas instrucciones en lenguaje assembly utilizan el registro FLAGS. Las instrucciones de salto condicionales utilizan ciertas banderas para calcular. Por ejemplo, jz utiliza la bandera de cero, jc utiliza la bandera de acarreo y jo utiliza la bandera de desbordamiento. Otras instrucciones condicionales observan combinaciones de varias banderas.

Determinación de tipo de procesador

Probar si ciertos bits del registro FLAGS son cambiables permite determinar qué tipo de procesador está instalado. Por ejemplo, la bandera de alineación solo puede ser cambiada en el 486 y superiores, así que si pueda ser cambiado entonces el CPU es un 486 o más alto. Estos métodos de detección de procesadores no quedaron obsoletos por la instrucción CPUID introducida con el Intel Pentium, ya que CPUID no es implementado en estas antiguas CPUs.

Véase también

Referencias

  1. «Intel® 64 and IA-32 Architectures Developer's Manual: Vol. 1». Intel. pp. 3-21. Consultado el 23 de septiembre de 2017. 
  2. «Intel 64 and IA-32 Architectures Software Developer’s Manual». p. 78. Consultado el Diciembre de 2016. 
  3. «Intel 64 and IA-32 Architectures Software Developer’s Manual». pp. 4-349,4-432. Consultado el Mayo de 2012. 
  •   Datos: Q2600316

registro, flags, registro, flags, registro, estado, microprocesadores, intel, contiene, estado, actual, procesador, este, registro, bits, ancho, sucesores, registros, eflagsy, rflags, bits, bits, ancho, respectivamente, más, amplio, registros, mantiene, compat. El registro FLAGS es el registro de estado en los microprocesadores Intel x86 que contiene el estado actual del procesador Este registro es de 16 bits de ancho Sus sucesores los registros EFLAGSy RFLAGS son de 32 bits y 64 bits de ancho respectivamente El mas amplio de los registros mantiene la compatibilidad con sus predecesores mas pequenos Los bits fijos en las posiciones de bit 1 3 y 5 y las banderas de acarreo carry paridad parity ajuste adjust cero zero y signo sign se heredan de una arquitectura aun anterior la 8080 La bandera de ajuste solia denominarse bit de transporte auxiliar auxiliary carry en 8080 y bit de transporte half carry en la arquitectura Zilog Z80 Indice 1 BANDERAS 2 USO 3 Determinacion de tipo de procesador 4 Vease tambien 5 ReferenciasBANDERAS EditarRegistro FLAGS Intel x86 1 Bit Abreviatura Descripcion CategoriaFLAGS Banderas 0 CF Bandera de acarreo Estado1 Reservado siempre 1 en EFLAGS 2 2 PF Bandera de paridad Estado3 Reservado4 AF Bandera de ajuste Estado5 Reservado6 ZF Bandera de cero Estado7 SF Bandera de signo Estado8 TF Bandera de trampa paso unico Control9 IF Bandera de interrupcion habilitada Control10 DF Bandera de direccion Control11 OF Bandera de desbordamiento Estado12 13 IOPL Nivel de privilegio de E S Solo 286 siempre 1 encima 8086 y 186 Sistema14 NT Bandera de tarea anidada Solo 286 siempre 1 en 8086 y 186 Sistema15 Reservado siempre 1 en 8086 y 186 siempre 0 en modelos mas recientes EFLAGS16 RF Bandera de resumen Solo 386 Sistema17 VM Bandera de modo Virtual 8086 Solo 386 Sistema18 AC Control de alineacion Solo 486SX Sistema19 VIF Bandera de interrupcion virtual Pentium Sistema20 VIP Interrupcion virtual pendiente Pentium Sistema21 ID Capaz de utilizar instruccion CPUID Pentium Sistema22 Reservado23 Reservado24 Reservado25 Reservado26 Reservado27 Reservado28 Reservado29 Reservado30 Reservado31 ReservadoRFLAGS32 63 ReservadoUSO EditarLas instrucciones POPF POPFD y POPFQ lee del stack los primeros 16 32 y 64 bits del registro de banderas respectivamente POPFD fue introducido con la arquitectura i386 Intel 80386 y POPFQ con la arquitectura x64 En el modo 64 bit PUSHF POPF y PUSHFQ POPFQ estan disponible pero no PUSHFD POPFD 3 El codigo assembler siguiente cambia la bandera de direccion DF pushf Desplaza las banderas actuales a la pila pop ax Pone las banderas de la pila en el registro ax push ax Desplaza de nuevo en la pila para el almacenaje xor ax 400h Activar solo la bandera DF mantener el resto de las banderas push ax Desplaza de nuevo para anadir el nuevo valor a la pila popf Desplaza el nuevo registro FLAGS Codigo aqui popf Coloca las viejas banderas en su lugar En software practico las instrucciones cld y stdson usadas para limpiar y configurar la bandera de direccion respectivamente Algunas instrucciones en lenguaje assembly utilizan el registro FLAGS Las instrucciones de salto condicionales utilizan ciertas banderas para calcular Por ejemplo jz utiliza la bandera de cero jc utiliza la bandera de acarreo y jo utiliza la bandera de desbordamiento Otras instrucciones condicionales observan combinaciones de varias banderas Determinacion de tipo de procesador EditarProbar si ciertos bits del registro FLAGS son cambiables permite determinar que tipo de procesador esta instalado Por ejemplo la bandera de alineacion solo puede ser cambiada en el 486 y superiores asi que si pueda ser cambiado entonces el CPU es un 486 o mas alto Estos metodos de deteccion de procesadores no quedaron obsoletos por la instruccion CPUID introducida con el Intel Pentium ya que CPUID no es implementado en estas antiguas CPUs Vease tambien EditarRegistro de estado Palabra de estado del programa x86 Lenguaje ensamblador x86 Listados de instrucciones x86Referencias Editar Intel 64 and IA 32 Architectures Developer s Manual Vol 1 Intel pp 3 21 Consultado el 23 de septiembre de 2017 Intel 64 and IA 32 Architectures Software Developer s Manual p 78 Consultado el Diciembre de 2016 Intel 64 and IA 32 Architectures Software Developer s Manual pp 4 349 4 432 Consultado el Mayo de 2012 Datos Q2600316 Obtenido de https es wikipedia org w index php title Registro FLAGS amp oldid 127244326, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos