Регістр прапорів (флагів), або слово стану процесора (PSW – Processor Status Word), містить 16 біт, із яких мікропроцесор 8086/88 використовує тільки 9.
Мал. 1 Регістр прапорів
Прапори мікропроцесора Intel 8086 розподіляються на прапори умов і прапори керування.
Прапори умов (CF, PF, AF, ZF, SF, та OF) встановлюються апаратурою арифметично–логічного пристрою мікропроцесора по результатам виконання машинної команди.
Прапори керування (TF, DF, та IF) впливають на функціонування апаратури процесора.
Перерахуємо функції прапорів умов:
CF (Carry Flag) – прапор переносу. При виконанні арифметичних команд встановлюється в тому випадку, якщо виникає перенос (виїмка) із старшого байта. Крім того, CF використовується функціями MS-DOS як сигнал наявності помилки при виконанні запрошених дій;
PF (Parity Flag) – прапор паритету. Встановлюється в одиницю, якщо молодші 8 біт результату містять парне число одиниць; в протилежному випадку в 0. Використовується для організації контролю правильності виконання арифметичних і порозрядних логічних операцій;
AF (Auxiliary Flag) – прапор додаткового переносу. Використовується в операціях двійково – десяткової арифметики;
ZF (Zero Flag) – прапор нуля. Встановлюється в одиницю, якщо при виконанні попередньої операції отримано нульовий результат; в протилежному випадку в 0. Деякі функції MS-DOS і BIOS використовують ZF як сигнал виникнення особливих умов при виконанні запрошених дій.
SF (Sign Flag) – прапор знаку. Встановлюється в одиницю, якщо результат попередньої операції від’ємний; в протилежному випадку в 0;
OF (Overflow Flag) – прапор переповнення. Встановлюється арифметичними командами при отриманні результату, значення якого виходить за допустимий діапазон.
Особливу роль відіграють прапори управління мікропроцесора:
TF (Trace Flag) – прапор трасування (покрокового виконання). Якщо TF встановлений, то після виконання чергової команди процесор апаратно генерує переривання 1 (обробка переривань розглядається в Ошибка! Источник ссылки не найден.). Встановлення прапору використовується програмами ‑ відладниками для організації покрокового виконання програми;
DF (Direction Flag) – прапор направлення. Впливає на те, як модифікуються регістри SI та DI при виконанні ланцюгових примітивів: якщо DF=0, процесор після обробки чергового байта (слова) збільшує значення індексних регістрів на 1(2); в протилежному випадку SI та DI зменшуються на 1(2);
IF (Interrupt Flag) – прапор керування перериваннями. Якщо даний прапор встановлений в 1, процесор здатен реагувати на переривання, які генеруються зовнішніми пристроями (більш детально про прапор IF див. в Ошибка! Источник ссылки не найден.). Прапор переривань слід скидати тільки на досить короткий проміжок часу, коли процесор повинен виконати фрагмент програми “атомарно”, від початку до кінця без втручання переривань. До числа таких ситуацій відноситься безпосередній доступ до буферу клавіатури, модифікації таблиці векторів переривань і т.д. Відмітимо, що процесор завжди скидає IF, ініціюючи обробку апаратного переривання (див. Ошибка! Источник ссылки не найден.).
![]() |
![]() |
![]() |