Registre de BANDERES

Registre d'estat de l'arquitectura x86


El registre FLAGS és el registre d'estat que conté l'estat actual d'una CPU x86. La mida i el significat dels bits de bandera depenen de l'arquitectura. Normalment reflecteix el resultat de les operacions aritmètiques, així com informació sobre les restriccions imposades a l'operació de la CPU en el moment actual. Algunes d'aquestes restriccions poden incloure la prparellció de l'activació d'algunes interrupcions, la prohibició d'execució d'una classe d'instruccions "privilegiades". Els indicadors d'estat addicionals poden evitar el mapeig de memòria i definir quina acció hauria de fer la CPU en cas de desbordament aritmètic.

Genersació del bit CARRY : exemple senzill d'unitat lògica aritmètica (ALU) que fa AND, OR, XOR i suma.

Les banderes de transport, paritat, transport auxiliar (o mig transport), zero i signe s'inclouen en moltes arquitectures.

A l'arquitectura i286, el registre és 16 bits amples. Els seus successors, els registres EFLAGS i RFLAGS, són 32 bits i 64 bits d'ample, respectivament. Els registres més amplis mantenen la compatibilitat amb els seus predecessors més petits.

Banderes

Exemple dels microprocessadors x86 d'Intel:

Intel x86 FLAGS registre[1]
Bit #MàscaraAbrebiaciíDescripcióCategoria=1=0
FLAGS
00x0001CFCarry flagStatusCY(Carry)NC(No Carry)
10x0002Reservat, sempre 1 a EFLAGS [2][3]
20x0004PFParitat flagStatusPE(Paritat parell)PO(Paritat senar)
30x0008Reservat[3]
40x0010AFAuxiliary Carry flag[4]StatusAC(Auxiliary Carry)NA(No Auxiliary Carry)
50x0020Reservat[3]
60x0040ZFZero flagStatusZR(Zero)NZ(Not Zero)
70x0080SFSign flagStatusNG(Negative)PL(Positive)
80x0100TFTrap flag (single step)Control
90x0200IFInterrupt habilita flagControlEI(habilita Interrupt)DI(deshabilita Interrupt)
100x0400DFDirection flagControlDN(Down)UP(Up)
110x0800OFOverflow flagStatusOV(Overflow)NV(Not Overflow)
12-130x3000IOPLI/O privilege level (286+ only),

sempre tot-1s a 8086 i 186

Sistema
140x4000NTNested task flag (286+ only),

sempre 1 a 8086 i 186

Sistema
150x8000MDMode flag (NEC V-series only),

reservat en tots Intel CPUs. sempre 1 a 8086/186, 0 a 286 i later.

Control(NEC only)

Native Mode (186 compatible)

(NEC only)

Emulation Mode (8080 compatible)

Ús

Tots els registres FLAGS contenen els codis de condició, bits de bandera que permeten que els resultats d'una instrucció en llenguatge màquina afectin una altra instrucció. Les instruccions aritmètiques i lògiques estableixen algunes o totes les marques, i les instruccions de salt condicionals prenen accions variables en funció del valor de determinades marques. Per exemple, jz (Saltar si es desborda), jc (Saltar si es porta) i jo (Saltar si es desborda) depenen de banderes específiques. Altres salts condicionals proveen combinacions de diverses banderes.

Els registres FLAGS es poden moure des o cap a la pila. Això forma part de la tasca d'estalviar i restaurar el context de la CPU, en contra d'una rutina com ara una rutina de servei d'interrupció els canvis dels registres no haurien de ser vists pel codi de trucada. Aquí teniu les instruccions pertinents:

  • Les instruccions PUSHF i POPF transfereixen el registre FLAGS de 16 bits.
  • PUSHFD/POPFD (introduït amb l'arquitectura i386) transfereix el registre doble EFLAGS de 32 bits.
  • PUSHFQ/POPFQ (introduït amb l'arquitectura x64) transfereix el registre RFLAGS de quadword de 64 bits.

En mode de 64 bits, PUSHF/POPF i PUSHFQ/POPFQ estan disponibles, però PUSHFD/POPFD no.[5]

:4-349,4-432

Els 8 bits inferiors del registre FLAGS també estan oberts a la manipulació directa de càrrega/emmagatzematge per part de SAHF i LAHF (carrega/emmagatzema AH en banderes).

Referències

🔥 Top keywords: PortadaEspecial:CercaJuraj CintulaPeretViquipèdia:ContacteManuel de Pedrolo i MolinaNova CaledòniaEspecial:Canvis recentsRobert FicoJessica Goicoechea JoverCarles Puigdemont i CasamajóEslovàquiaXavlegbmaofffassssitimiwoamndutroabcwapwaeiippohfffXOriol Junqueras i ViesMauricio WiesenthalEleccions al Parlament de Catalunya de 2024Cas Asunta BasterraClara Ponsatí i ObiolsJoan Salvat-PapasseitAntoni Comín i OliveresLluís Puig i GordiEsquerra Republicana de CatalunyaValtònycAamer AnwarBorratjaTor (Alins)Fermín López MarínLaia Flores i CostaSegona Guerra MundialLaura Borràs i CastanyerProvíncies de CatalunyaSílvia Orriols SerraJosep Costa i RossellóPresident de la Generalitat de CatalunyaParlament de CatalunyaAurora Madaula i GiménezHistòria del cristianismeComarques de CatalunyaRamón Cotarelo García