ПредишенСледващото

Вътрешни регистри знамена регистрират

знамена EFLAGS регистър отразява текущото състояние на процесора, много от неговите бита са установени след изпълнение на операциите и посочете вида на резултата. знамена регистрират формат е показана на фиг. 1.3.

Извършва стойност определя флаг трансфер (заемат) възниква при добавянето (изваждане). Понякога се използва и в други ситуации.

Паритет Flag открива може да се използва наличието на четен брой такива в долния байт на резултата от операцията, например за мониторинг на данните правилно.

AF (спомагателен пренос флаг малко 4)

спомагателни пренос грешки флаг трансфер (кредит) на LSnibble, т.е. Bit 3 MSnibble в допълнение (изваждане). Използва се само за BCD аритметика, която работи само на ниски байт.

Нула обозначава получаването на нула (ZF = 1) или ненулева (ZF = 0) на резултата от операцията.

знак знаме дублира стойността на MSB доведе, че при използване на допълнителен код съответства на знака на числото (0 - положително число, 1 - отрицателен).

Монтаж trassirovkiTF флаг = 1, микропроцесорни протича в стъпка по стъпка режим. се използва за отстраняване на грешки на програми, които автоматично генерира специален случай на грешки (#DB) след всяка команда. отстраняване на грешки прекъсване започва генерирани ако приложната програма ще определи TF знаме с помощта на команди POPF / POPFD или IRET / IRETD.

IF (прекъсне позволи флаг, прехапа 9)

Монтаж preryvaniyIF разрешение флаг = 1, микропроцесорните сетивата (Открива) и съответно реагират на прекъсване вход искане INTR # (външна maskable прекъсване). Ако IF = 0, за прекъсване на този запис е забранено и микропроцесора игнорира получените заявки за прекъсвания.

Промяната на този флаг команди CLI. STI. POPF / POPFD и IRET / IRETD не винаги е възможно и се определя от ток:

Когато виртуален прекъсване инициализира (CR4.PVI = 1 в защитен режим или CR4.VME = 1 в режим V86) при изпълнение на същите условия IOPL

флага за препълване показва загубата на по-старите бита на резултата се дължи на преливане цифрен мрежата, когато се работи с подписани номера. В допълнение, този флаг е настроен на 1, ако за носене възниква в MSB и няма прехвърляне на високо повода, или че е налице прехвърляне от най-маловажният бит, но това не е прехвърлено; В противен случай, на знамето е настроена на 0. Когато се извади това е 1, когато има заем от MSB, но заем MSB отсъства или има заем MSB но никой от тях заем.

IOPL (Ниво I / O привилегия, битове 13 и 12: Intel286 ...)

Защитената команден режим POPF / POPFD е едновременно в зависимост от нивото и на входно / vyvodaIOPL привилегии. и сегашното ниво привилегия (CPL), което позволява да се промени поле IOPL само когато на ниво нула привилегия (CPL = 0) и прекъсване позволи на флага IF - само ако CPL ≤ IOPL. Въпреки това, ако този отбор не може да промени указаното поле или флаг, поради липса на сегашните привилегии. генериране на специалната ситуация обща защита (#GP) не се случва - продължаващо изпълнение на следващите команди. Това поведение промени в режим V86 - е опит да се POPF / POPFD екипи използват в IOPL <3 (кроме режима EV86 ) всегда вызывает генерацию особой ситуации общей защиты (#GP) .

В процесори, тъй като Pentium, EV86 има специален режим (активира, като CR4.VME флаг = 1 в режим на V86), в който има допълнителна специфичност за IOPL-чувствителни команди. На първо място, IRET команда в този режим престава да бъде IOPL-чувствителна и не генерира специален случай общата закрила (#GP) при IOPL <3. Команды CLI. STI при IOPL <3, вместо генерации указанной особой ситуации. оказывают влияние на флаг виртуального прерывания VIF (также как и команда POPF ), а для команды INT n вообще возникает несколько режимов. которые зависят от текущего контекста конкретной задачи V86. И наконец, команда PUSHF (16-битная), выполняемая в режиме EV86 при IOPL <3, также не генериует особую ситуацию общей защиты (#GP). а записывает в стек образ регистра флаговFLAGS. у которого биты, соответствующие полю IOPL. устанавливаются равными 3, а бит IF записывается из текущего значения флага VIF .

NT (вложени задача Bit 14: Intel286 ...)

Процесорът определя флаг и проверки вложени задача да наблюдава прекъсване на задачата (през който изпълнението се състоя прекъсване) и се обадете процедури. NT флаг засяга действия, извършени отбор IRET / IRETD. Този флаг може да бъде променена команда POPF / POPFD и IRET / IRETD. Неправилно промяна на флага може да доведе до най-различни специални ситуации в приложните програми.

RF (битове възобновяването флаг 16: Intel386 ...)

vozobnovleniyaRF флаг временно деактивира обработка на специални отстраняваме ситуации (DB #) на екипа, предизвикали такава ситуация може да се рестартира и няма да доведе до нови специални ситуации. Дебъгера определя екип IRETD на знамето, когато се завръщат на прекъснатата програма. Екипът POPF. POPFD (в режим V86) и IRET този флаг не е засегната.

VM (Virtual режим, ухапа 17: Intel386 ...)

AC (режим на управление подравняване, ухапа 18: Intel486 ...)

Таблица 3.5. изравняване условия за контрол

ВИФ (Virtual прекъсване малко 19: Pentium ...)

preryvaniyaVIF виртуалния флаг се използва във връзка с VIP знаме и позволява нормалното изпълнение на стария софтуер, използвайки команди външни прекъсвания maskable (вектори 32 до 255), и по-модерен многопроцесорни многозадачност софтуер и хардуер среда.

За тази цел, тъй като преработвателите на Pentium, поддържа специални усъвършенствани режими на работа прекъсване:

В тези режими, виртуалната прекъсване флаг ВИФ излиза виртуален сходство флаг IF. При условие, че виртуалната прекъсват инициализира (CR4.PVI = 1 в защитената режим. CR4.VME = 1 в режим на V86), предавани по полов път и текстови команди, които да повлияят EFLAGS.VIF флаг. АКО флаг и по този начин остава непроменен. Когато външен maskable прекъсне процесор произвежда стандартно лечение за защитен режим на прекъсване манипулатор чрез таблица за прекъсване ЕВРОВОК (IDT). По този начин, когато се записва стойността на процесора регистър стека EFLAGS поле IOPL пише на 3 и флаг, ако равен ВИФ.

VIP (Virtual Прекъсване Предстоящи ухапа 20: Pentium ...)

Виртуална preryvaniyaVIP флаг чака се използва във връзка с флага ВИФ и позволява на приложенията да подкрепят виртуален режим прекъсне наблюдава външно прекъсване повиквания дори когато програмата ще прикрие тяхното изпълнение (дисплей в очакване на виртуална прекъсване). За повече информация относно използването на тези знамена, се отнасят до описанието на прекъсвания и изключения.

ID (идентификация флаг, ухапа 21: Pentium ...)

identifikatsiiID флаг е да провери - ако се поддържа от командата CPU CPUID. Ако програмата може да се зададе и нулиране на този флаг означава CPUID команда от процесора поддържа.

Свързани статии

Подкрепете проекта - споделете линка, благодаря!