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

знамена регистрират, osdev уики, задвижвани от общността на феновете на Wikia

правна история

флагове се регистрират, че е в първата 16-битов микропроцесор Intel - 8086. Носеше ЗНАМЕНА име и имаше дължина 16 бита. Появата на микропроцесора в добавените ЗНАМЕТО 80286 регистрирате битовете и поле NT IOPL обаче регистрирате себе си остана 16-битов.

С микропроцесора регистър 80386 е разширена до 32 бита, и се нарича EFLAGS. В него имаше две допълнителни бита: VM и RF. В Добавени са следващите поколения на 32-битови микропроцесори AC бита, ВИФ, VIP и ID. Въпреки това запазва пълна съвместимост "отдолу-нагоре": всяка стара програма, която работи правилно с EFLAGS регистрират, без да се променя "неизвестното", тя остава битове работещи и следващите процесори.

Разширение битови процесори и 64 бита първоначално произведени от AMD (AMD64 технология) и по-късно се копира Intel (EM64T), са се удвоили и размера на знамена регистър, наречен RFLAGS. Въпреки това, горната си половина (бита от 32-ти до 63-та включително), докато не се използва и е запазен, така че формата на "съдържателен" част RFLAGS съвпада с EFLAGS формат.

Назначаване освобождава Редактиране

EFLAGS регистрират формат е както следва:

Имайте предвид, че всички неизползвани бита са равни на нула. Изключение прави малко 1, който винаги има една стойност.

На следващо място, в зависимост от всеки бит, включени в регистъра на знамето.

държавните знамена Редактиране

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

Знамената на тази група могат да се променят с помощта на каквито и да било командите на програмата, повишаване на флаг регистрирате нова стойност (SAHF. POPF / POPFD / POPFQ).

Carry флаг (бит 0). В действителност, той има различно предназначение, в зависимост от изпълним инструкция. В аритметични операции върху числа този флаг, когато в стаята, показва наличието на заем или прехвърляне (това може да се разглежда като "неподписан преливане") и е sbroshennm - няма трансфер или кредита. В допълнение, този флаг се използва в някои други инструкции и някакъв начин описва резултата. Подробности за използването на флага във всяка инструкция е посочен в описанието му

паритет флаг (малко 2). Определете, ако резултатът от най-младшия байт съдържа четен брой битове с данни, в противен случай се връща

спомагателни носене флаг (малко 4). Задайте когато заем или прехвърляне на четвърто razzryada в третата категория. Изчиства при липса на такава. Използвайте корекцията десетичната команда.

нула флаг (малко 6). Задайте при получаване на нулев резултат се връща по друг начин.

знак знаме (малко 7). Се наглася, ако резултатът от операцията, получен чрез отрицателно число, т.е. ако най-маловажният бит на резултата е равен на единство. В противен случай нулиране

преливник флаг (малко 11). Определете, ако резултатът от аритметична операция записва преливане забележителност, тоест, ако резултатът се счита за подписан номер, не е поставен в операнд-приемника. Ако няма и следа от преливане, флагът се нулира

Flag посоки Редактиране

Този флаг може да бъде променена всички програми, с помощта на специални инструкции CLD и STD. и зареждане на ново съдържание регистър флаг.

система Flag

Тези флагове могат да бъдат променяни само от системния софтуер работи при нулева (най-високата) текущото ниво на привилегия (CPL). АКО е флаг изключение, състоянието на които при определени условия могат да варират по-малко привилегирован код. Изтегляне на знамена регистрира програми не работят на нивото на привилегии нула, не променя стойностите на флаговете на системата.

капан флаг (малко 8). Когато е зададено, води до прекъсване #DB (вектор 1) след изпълнението на всеки процесор инструкции с изключение на това, което се извършва настройка на този флаг

Прекъсване позволи флаг (малко 9). Когато е зададено, процесорът обработва maskable заявките за прекъсване са получени от прекъсване контролер или подобрен прекъсване контролер. Когато изчистени, прекъсват процесор maskable се игнорира (очакват обработка). Способността да се установява и нулира флага IF програми, които не работят на нивото на привилегии нула. IOPL тече поле и битови флагове регистър VE контролира регистрирате CR3 (Може ухапа VME CR 4 регистрирам?)

Поле ниво I / O привилегия (битове 12 и 13). Той съдържа ниво привилегии IO за текущо изпълнение на програмата. Ако програмата на сегашното ниво привилегия (CPL) числено по-малка или равна на стойността в полето за IOPL, програмата може да използвате инструкциите за входно-изходни и променя състоянието на флага IF. IOPL поле допълнена карта IO разрешение TSS. и VME малко в контрола регистрирате CR4

Вместен задача (малко 14). Този флаг се настройва автоматично, когато процесора е включен към новата задача. Преминаване към проблемът възниква, когато го използвате като прекъсне треньор през портала на проблема в IDT или неговото повикване CALL команда, адресирано до проблема с TSS или шлюз. Намира се в GDT или LdT

възобновяване флаг (малко 16). Управляващият процесор отговор на точки на прекъсване. Когато е настроен, той забранява поколение на прекъсване за отстраняване на грешки (#DB). Основната функция на флага за RF е да се гарантира повторното изпълнение на инструкцията, след настъпването на прекъсването за отстраняване на грешки, причинени от точката на прекъсване. За да направите това, дебъгер преди да се върне към прекъснатата програма трябва да зададете този бит в знамената регистрирате прекъснат програма записва в стека, който ще осигури нормалното изпълнението на инструкцията, на които няма да има връщане от дебъгер. След нея, процесорът автоматично ще възстанови RF знаме, което ще гарантира правилното функциониране на точки на прекъсване зададете

режим виртуален процесор 8086 (17 бита). Когато този флаг е установен, процесорът е в виртуален режим, процесорът 8086

Проверката на подравняване (малко 18). Когато тази променлива е едновременно и AC ухапа CR0 контрол регистър. и програмата се изпълнява на третото ниво на привилегии. активира проверка операнд подравняване намира в паметта. Когато се опитате да получите достъп до разместване операнд изключение възниква #AC (вектор 17)

Виртуална прекъсване позволи флаг (малко 19). Този флаг се използва във връзка с VIP флаг, в контрола регистрирате CR 4 бит VME, което позволява използването на виртуален 8086 режим разширения

В очакване на виртуална прекъсване (ухапа 20). Този флаг се използва във връзка с ВИФ флаг в контролата регистрирате CR 4 бит, установен VME, което позволява използването на виртуален 8086 режим разширения

Идентификация (21 бита). Способността на софтуер, за да се установява и нулира флага Показателно е, че процесора поддържа инструкции CPUID в

Той констатира, че използването на разширение AdBlock.

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

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