Регістр прапорців

В регістрі прапорців (Flags) поміщаються признаки результатів виконання програми. Його розряди також керують обробкою переривань, послідовністю задач які переривалися, вводом/виводом і переключенням в режим CPU 8086. Структура регістру флагів має наступний вигляд:

 

 

Рис. 2. Структура регістру прапорців.

 

ID (біт 21) – прапорець підтримки ідентифікації процесора. Якщо прапорець можна змінити програмно, то підтримується команда ідентифікації процесора CPUID.

VIP (біт 20) – прапорець відкладеного переривання (для віртуального режиму). 1 – є відкладені переривання; 0 – немає відкладених переривань.

VIF (біт 19) – прапорець віртуального переривання. Якщо 1 – апаратні переривання дозволені; 0 – апаратні переривання недозволені.

АС (біт 18) – прапорець контролю вирівнювання.

VM – (біт 17) – віртуальний режим. Включає віртуальний режим CPU 8086 в середині захищеного режиму CPU 8086 і вище. Цей біт може встановлюватись тільки в захищеному режимі.

RF – (біт 16) – прапорець відновлення. Використовують з точками стопу регістрів відладки і в покроковому режимі. Перевіряється після кожної команди і перед перериванням. Якщо RF = 1, то будь-яка помилка відладки в наступній команді ігнорується. Біт RF встановлюється в 0 при успішному завершені кожної команди сигналізуючи про відсутність помилки.

NT (біт 14) – вкладена задача. Використовується тільки в захищеному режимі.

NT =1 встановлюють для того, щоб вказати на те, що поточна задача вложена в деяку іншу задачу і TSS (сегмент стану) даної задачі має правильний зворотній зв’язок з TSS попередньої задачі. NT встановлюється в “1” чи в “0” при передачі управління в іншу задачу.

IOPL – (біт 12, 13) – рівень пріоритету вводу/виводу. Застосовується тільки в захищеному режимі. IOPL вказує максимальну величину поточного рівня пріоритетів (CPL), що дозволяє виконання команд вводу/виводу без генерації переривання 13.

OF (біт 11) – переповнення. OF = 1 у випадку коли проведена операція привела до переповнення знакового ряду. Для 8, 16, 32 – розрядних операцій OF = 1 при переповненні бітів 7, 15, 31 відповідно.

DF (біт 10) – прапорець напрямку. Вказує на зменшення при “1” чи збільшення (при “0”), (автоматичний декримент / інкремент), вмісту регістрів ESI і/або EDI при виконанні команд обробки рядків (символьних даних).

IF (біт 9) – прапорець переривання INTR. Переривання дозволені якщо IF = “1” (дозволено обробляти запити зовнішніх переривань на вході INTR). Якщо IF = “0”, то розпізнаються тільки немасковані (програмні) переривання.

TF (біт 8) – прапорець трасування (пастки). Керує генерацією переривання INT 3, якщо TF = 1, то процесор переходить в стан переривання INT 3 після виконання кожної команди (кроковий режим).

SF (біт 7) – прапорець знаку. SF = 0 – для додатних чисел; SF = 1 – для від’ємних чисел. Для 8, 16, 32 – розрядних операндів SF відображає значення бітів 7, 15, 31 відповідно.

ZF (біт 6) – прапорець нуля. ZF = 1, коли всі розряди результату рівні 0, в іншому випадку ZF = 0.

AF (біт 4) – прапорець додаткового переносу. Використовується для додавання і віднімання даних в двійково-десятковому форматі (BCD). AF=1, якщо результат операції приводить до необхідності операції переносу чи позичання між півбайтами.

PF (біт 2) – прапорець парності (паритету). Функція тільки молодших восьми розрядів, незалежно від величини операнду. PF = 1 у випадку коли молодші вісім розрядів операнду містять парне число одиничних біт, інакше PF = 0.

CF (біт 0 – прапорець переносу. CF = 1, якщо виконана операція приводить до переносу (додавання), або позичання (віднімання) в старший не знаковий розряд, інакше CF = 0.

 








Дата добавления: 2015-10-09; просмотров: 2234;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.004 сек.