Студопедия
Новини освіти і науки:
МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах


РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання


ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ"


ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ


Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків


Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні


Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах


Гендерна антидискримінаційна експертиза може зробити нас моральними рабами


ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ


ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів



Лекция № 3.

Рис. 2.1 Регістр прапорців eflags/flags

 

Прапорці регістра eflags можна розподілити на три групи.

В першу групу входять вісім прапорців стану: cf, pf, af, zf, sf, of, iopl, nt. Ці прапорці можуть змінити своє значення після виконання машинних команд. Вони відображують особливості виконання арифметичних або логічних операцій, тобто стан обчислювального процесу, і можуть бути проаналізовані за допомогою команд умовних переходів і викликів підпрограм. Це наступні прапорці:

– прапорець перенесення (carry flag) cf:

1 – арифметична операція здійснила перенесення зі старшого біта результату, старшим є 7-й, 15-й або 31-й біт у залежності від розмірності операнда;

0 – перенесення не було;

– прапорець парності (parity flag) pf:

1 – вісім молодших розрядів (цей прапорець тільки для восьми молодших розрядів операції операнда будь-якого розміру) результату містять парну кількість розрядів зі значенням 1;

0 – вісім молодших розрядів містять непарну кількість розрядів зі значенням 1;

– допоміжний прапорець перенесення (auxiliary carry flag) af застосовується тільки в командах, операндами яких є BCD-числа. Фіксує факт позичання/перенесення з молодшої тетради результату:

1 – в результаті виконання арифметичної операції додавання відбулося перенесення з розряду 3 в старший розряд або при відніманні було позичання в розряд 3 молодшої тетради зі значення в старшій тетраді;

0 – перенесення в четвертий і позичання в третій розряд молодшої тетради не було;

– прапорець нуля (zero flag) zf:

1 – результат нульовий4

0 – результат не нульовий;

– прапорець знаку (sign flag) sf відображує стан старшого біта операції (відповідно 7-й, 15-й або 31-й біти для 8-, 16- або 32-бітових операндів):

1 – старший біт результату дорівнює 1;

0 – старший біт результату дорівнює 0;

– прапорець переповнення (overflow flag) of використовується для фіксування значущого біта в арифметичних операціях:

1 – за результатом арифметичної операції відбувається перенесення в старший знаковий біт результату або позичання зі старшого знакового біта результату (7, 15 або 31 для 8-, 16- або 32-бітових операндів відповідно);

– рівень привілейованості введення-виведення (input/output privilege level) iopl використовується в захищеному режимі роботи процесора для контролю доступу до команд введення-виведення в залежності від привілейованості задачі;

– прапорець вкладеності задачі (nested task) nt використовується в захищеному режимі роботи процесора для фіксування того факту, що одна задача вкладена в іншу.

Друга група – група прапорців керування має тільки один прапорець df (directory flag) – прапорець напрямку. Він використовується ланцюжковими командами для визначення напрямку опрацювання елементів ланцюжка: від початку ланцюжка (df=0) або від кінця ланцюжка до його початку (df=1). Є команди для роботи з цим прапорцем.

У третю групу регістра eflags входить вісім системних прапорців, які керують введенням-виведенням, маскованими перериваннями, налагодженням, перемиканнями між задачами і режимом віртуального процесора 8086. Наведемо опис цих прапорців:

– прапорець трасування (trace flag) tf використовується для організації покрокової роботи процесора:

1 – процесор генерує переривання з кодом 1 після виконання кожної машинної команди (можна використовувати для налагодження програм, зокрема програмами налагодження;

0 – звичайна робота;

– прапорець переривання (interrupt enable flag) if дозволяє або ні (маскує) апаратні переривання (переривання по входу intr):

1 – апаратні переривання дозволені;

0 – апаратні переривання заборонені;

– прапорець поновлення (resume flag) rf використовується при обробці переривань від регістрів налагодження. Якщо цей прапорець дорівнює 1, то особливі ситуації, які виникли під час налагодження, тимчасово забороняються, щоб призупинити генерацію ще таких же особливих ситуацій. Установлюється в 1 командою iretd з обробника переривання. На прапорець не впливають команди popf, pushf, iret, тобто прапорець привілейований;

– прапорець режиму віртуального процесора 8086 (virtual 8086 mode) vm прапорець віртуального режиму або V-режиму. Найбільш сильно впливає на роботу процесора. Коли vm=0, то процесор може працювати в R-режимі або P-режимі. Якщо vm=1, то процесор переводиться в V-режим, в якому емалюється програмне середовище процесора 8086, тобто i486 перетворюється у високопродуктивний процесор 8086 і можна виконувати декілька програм, розроблених для цього процесора;

– прапорець контролю вирівнювання (alignment check) ac призначений для того, щоб дозволити контроль за вирівнюванням на відповідну межу при зверненні до оперативної пам’яті. Використовується сумісно з бітом am в системному регістрі cr0. Наприклад, Pentium дозволяє вирівнювання даних і команд, починаючи з будь-якої адреси. Якщо потрібно контролювати вирівнювання даних і команд за адресами, які кратні 2 або 4, то установка даних бітів зумовлюватиме те, що при кожному зверненні до оперативної пам’яті за некратними адресами, виникатиме особлива ситуація;

– прапорець віртуального переривання (virtual interrupt flag) vif появився в процесорі Pentium. Якщо процесор працює у V-режимі, то цей прапорець є аналогом прапорця if. Прапорець vif використовується сумісно з прапорцем vip;

– прапорець відкладеного віртуального переривання (virtual interrupt pending flag) vip – появився в процесорі Pentium, установлюється в 1 для індикації відкладеного переривання. Використовується при роботі у V-режимі сумісно з прапорцем vif;

– прапорець ідентифікації (identification flag) id використовується для того, що показати факт підтримки процесором команди cpuid. Якщо програма може встановити цей прапорець 1 або 0, то дана модель процесора підтримує команду cpuid.

 

 


Читайте також:

  1. Лекция 1
  2. ЛЕКЦИЯ 1
  3. Лекция 1.
  4. Лекция 1.
  5. Лекция 1. Введение
  6. Лекция 1. Векторная графика. Macromedia Flash MX Инструменты и технологии рисования во Flash
  7. Лекция 1. МАКРОЭКОНОМИКА. НАЦИОНАЛЬНАЯ
  8. ЛЕКЦИЯ 10
  9. Лекция 10.
  10. Лекция 11. Растворы электролитов. Электролитическая
  11. Лекция 11. Растворы электролитов. Электролитическая
  12. Лекция 11. Растворы электролитов. Электролитическая




Переглядів: 1018

<== попередня сторінка | наступна сторінка ==>
Законодавство України в галузі ОП | Формати і типи даних. Формат машинних команд. Система

Не знайшли потрібну інформацію? Скористайтесь пошуком google:

  

© studopedia.com.ua При використанні або копіюванні матеріалів пряме посилання на сайт обов'язкове.


Генерація сторінки за: 0.014 сек.