Belső nyilvántartások zászlók regisztráljon

zászlók EFLAGS regiszter aktuális állapotát tükrözi a processzor, sok a bit értékét végrehajtása után és jelezni, hogy milyen típusú az eredmény. zászlók regisztrációhoz méret ábrán látható. 1.3.

Carry flag javítások átvételi értéke (kölcsön) keletkezik hozzáadásával (kivonás). Néha használják más helyzetekben.

Paritás Flag jelenlétét érzékeli, páros számú közül az alsó byte a művelet eredménye is lehet használni, például nyomon követésére az adatok helyesen.

AF (kisegítő átvitel jelzőbit 4)

kisegítő átvitel jelzőbit javítások transzfer (hitel) a LSnibble, azaz Bit 3. MSnibble a felül (kivonás). Csak használt BCD aritmetika, ami működik, csak az alsó bájt.

Nulla jelző flag kézhezvételét nulla (ZF = 1), vagy nem nulla (ZF = 0) a művelet eredményeként.

előjelbitként megduplázza az értékét a MSB eredményezheti, hogy amikor kiegészítő kód megegyezik a jele száma (0 - pozitív szám, 1 - negatív).

Szerelési trassirovkiTF flag = 1, a mikroprocesszor továbblép egy lépésről lépésre üzemmódban. használt hibakereső programot, amely automatikusan generál különleges helyzet hibakeresés (#DB) minden parancs után. hibakeresés megszakítás elindul keletkezik, ha a felhasználói program beállítja a flag TF parancsokkal POPF / POPFD vagy IRET / IRETD.

IF (megszakítás engedélyező flag bit 9)

Szerelési preryvaniyIF engedélye zászló = 1, a mikroprocesszor érzék (érzékeli), illetőleg reagálnak a megszakítási kérelmet bemenetet INTR # (külső maszkolható interrupt). Ha IF = 0, a megszakítást ezt a bejegyzést tilos, és a mikroprocesszor figyelmen kívül hagyja a kapott megszakítási kérelmeket.

Ennek megváltoztatása zászló parancsok CLI. STI. POPF / POPFD és IRET / IRETD nem mindig lehetséges, és határozza meg az aktuális:

Amikor a virtuális megszakítás inicializált (CR4.PVI = 1 a védett módban vagy CR4.VME = 1 V86 mód) végrehajtásakor azonos feltételek IOPL

a túlfolyó zászló azt jelzi, a veszteség az idősebb bit az eredmény miatt a túlfolyó jegyű rács ha dolgozik aláírt számok. Ezen túlmenően, ez a jelző 1-be, ha a carry történik az MSB és nem történt a nagy bit, vagy van egy carry a legjelentősebb kicsit, de ez nem száll át; Ellenkező esetben a lobogó szerinti értéke 0. levonva van beállítva 1, ha van egy kölcsön a MSB, de kölcsön MSB hiányzik, vagy kölcsön MSB de nincs hitel azoktól.

IOPL (Level I / O kiváltság, bitek 13 és 12: Intel286 ...)

A biztonságos mód parancsot POPF / POPFD egyaránt függ a szinten, és a bemeneti / vyvodaIOPL jogosultságokat. és a jelenlegi jogosultsági szint (CPL), amely lehetővé teszi, hogy módosítsa IOPL mező csak akkor, ha a nulla jogosultsági szint (CPL = 0), és a megszakítás engedélyező flag IF - csak akkor, ha a CPL ≤ IOPL. Azonban, ha ez a csapat nem tudja megváltoztatni a megadott mező vagy zászló hiánya miatt a jelenlegi jogosultsággal. generáló különleges helyzet általános védelmi (#GP) nem fordul elő - folyamatos végrehajtását követő parancsokat. Ez a viselkedés változásai V86 mód - egy kísérlet POPF / POPFD csapatok használni IOPL <3 (кроме режима EV86 ) всегда вызывает генерацию особой ситуации общей защиты (#GP) .

A feldolgozók, mivel a Pentium EV86 egy speciális módja (engedélyezve beállításával CR4.VME zászló = 1 a V86 mód), amelyben van egy további specificitása IOPL érzékeny parancsokat. Először is, IRET parancsot ebben a módban már nem IOPL-érzékeny, és nem generál a különleges helyzet általános védelmi (#GP) a IOPL <3. Команды CLI. STI при IOPL <3, вместо генерации указанной особой ситуации. оказывают влияние на флаг виртуального прерывания VIF (также как и команда POPF ), а для команды INT n вообще возникает несколько режимов. которые зависят от текущего контекста конкретной задачи V86. И наконец, команда PUSHF (16-битная), выполняемая в режиме EV86 при IOPL <3, также не генериует особую ситуацию общей защиты (#GP). а записывает в стек образ регистра флаговFLAGS. у которого биты, соответствующие полю IOPL. устанавливаются равными 3, а бит IF записывается из текущего значения флага VIF .

NT (beágyazott feladat Bit 14: Intel286 ...)

A processzor beállítja a zászlót, és ellenőrzi beágyazott feladat figyelemmel kíséri a megszakított feladat (amely alatt a kivégzés interrupt), és hívja eljárásokat. NT flag befolyásolja a végrehajtott műveletek IRET / IRETD csapat. Ez a zászló lehet változtatni parancs POPF / POPFD és IRET / IRETD. Hibás változás a zászló vezethet a különböző speciális helyzetekben az alkalmazási programok.

RF (újrakezdését jelzőbiteket 16: Intel386 ...)

vozobnovleniyaRF zászló ideiglenesen kikapcsolja feldolgozása speciális hibakeresési helyzetekben (DB #), hogy a csapat, ami miatt egy ilyen helyzetben lehet újraindítani, és nem okozna egy új különleges helyzeteket. A hibakereső beállítja a zászlót csapat IRETD amikor visszatér a megszakított programot. POPF csapat. POPFD (a V86 mód), és IRET ez a jelző nem érinti.

VM (Virtual mód, bit 17: Intel386 ...)

AC (igazítás vezérlési mód, bit 18: Intel486 ...)

3.5 táblázat. szintszabályozás feltételek

VIF (Virtual megszakítás bit 19: Pentium ...)

preryvaniyaVIF virtuális zászlót használják együtt zászló VIP, és lehetővé teszi a normális végrehajtását a régi szoftvert használó parancsok külső maszkolható megszakításokat (vektorok 32-255), és a modern többprocesszoros multitask szoftver és hardver környezetet.

Ebből a célból, a feldolgozók, mivel a Pentium, támogatja a speciális, fejlett megszakítás kezelési módok:

E módokban a virtuális interrupt flag VIF kiáll virtuális hasonlóság zászló IF. Feltéve, hogy a virtuális megszakítási inicializált (CR4.PVI = 1 a védett módban. CR4.VME = 1 a V86 mód), STI és CLI parancsok hatással EFLAGS.VIF zászló. IF flag és így változatlan marad. Amikor külső maszkolható megszakító processzor termel standard kezelést az védett módban megszakítás-kezelőre keresztül megszakítás leíró táblázat (IDT). Így, amikor a felvétel az értéket a regiszter stack EFLAGS területén IOPL processzor ír 3 és zászló IF egyenlő VIF.

VIP (Virtual Interrupt Folyamatban bit 20: Pentium ...)

Virtuális preryvaniyaVIP vár zászlót használják együtt a VIF zászló és lehetővé teszi az alkalmazások támogatja a virtuális módban megszakítás monitor külső megszakítás hívásokat, ha a program elfedését végrehajtás (kijelző függő virtuális interrupt). További információk az ezek használatát zászlók, leírását lásd a megszakítások és kivételek.

ID (azonosító flag bit 21: Pentium ...)

identifikatsiiID zászló célja, hogy teszteljék - ha támogatja a CPU CPUID parancsot. Ha a programot lehet beállítani, és állítsa vissza ezt a zászlót jelent CPUID parancsot a processzor által támogatott.

Kapcsolódó cikkek