русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Регистры флагов


Дата добавления: 2015-06-12; просмотров: 583; Нарушение авторских прав


Коды ситуации ( например, перенос, знак, переполнение ) и биты режимов хранятся в специальном 32-разрядном регистре EFLAGS. На Рисунке 2-9 показано содержимое этого регистра. Флаги данного регистра управляют определенными операциями и отражают состояние процессора i486. Флаги могут быть условно разделены на три группы: флаги состояния, управляющие флаги, системные флаги. Системные флаги обсуждаются в Части II.

Флаги состояния

Флаги состояния регистра EFLAGS отражают тип результата исполнения арифметических операций. Операция MOV не оказывает влияние на состояние данных флагов. Команды условных переходов и вызовы подпрограмм дают возможность программе отслеживать значения флагов состояния и реагировать на них. Например, при выполнении цикла с уменьшением счетчика цикла и выходом при равенстве счетчика 0, отслеживается состояние флага ZF, которое используется оператором условного перехода для повторения операций цикла или выхода из цикла. Флаги состояния показаны в Таблице 2-2.

Управляющий флаг

Управляющий флаг DF регистра EFLAGS определяет порядок работы операций со строками. DF (флаг направления, 10-ий бит)

+-----------------------------------------------------------------+| || 1 1 1 1 1 1 1 1 1 || 31 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 ||+---------------------------------------------------------------+

| | | | | | | | | | | | | | | | | | | | | | | | | | | | | |

A|V|R|0|N|I O|O|D|I|T|S|Z|0|A|0|P|1|C

C|M|F| |T|P L|F|F|F|F|F|F| |F| |F| |F

| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |

Х Проверка выравнивания --+ | | | | | | | | | | | | | || х Флаг режима виртуального -+ | | | | | | | | | | | | || процессора 8086 | | | | | | | | | | | | || х Флаг возобновления ---------+ | | | | | | | | | | | || х Флаг вложенной задачи ----------+ | | | | | | | | | | || х Уровень привилегий ввода-вывода ---+ | | | | | | | | | || с Флаг переполнения --------------------+ | | | | | | | | || у Флаг направления -----------------------+ | | | | | | | || х Разрешение прерываний --------------------+ | | | | | | || х Флаг ловушки -------------------------------+ | | | | | || с Флаг знака -----------------------------------+ | | | | || с Флаг нуля --------------------------------------+ | | | || с Флаг вспомогательного переноса ---------------------+ | | || с Флаг четности ------------------------------------------+ | || с Флаг переноса ----------------------------------------------+ || || х - системный флаг || с - флаг состояния || у - управляющий флаг || || 1 или 0 обозначают биты, зарезервированные фирмой Intel || Данные регистры не используются, а их значения всегда постоянны || |+-----------------------------------------------------------------+ Рисунок 2-9. Регистр EFLAGS Таблица 2-2 Флаги состояния +--------------------------------------------------------------+| Имя | Назначения | Соответствует условию |+-------+-----------------+------------------------------------|| OF | переполнение | Результат превысил положительный || | | или отрицательный предел для чисел || SF | знак | Результат отрицательный (меньше 0) || ZF | нуль | Результат равен 0 || AF | вспомогательный | Перенос из 3-го бита || | перенос | (используется при работе с BCD) || PF | четность | Младший байт содержит четное число || | | единиц || CF | флаг переноса | Перенос за пределы значимых цифр || | | результата |+--------------------------------------------------------------+ Установка флага DF позволяет устанавливать автоматическое увеличение или уменьшение счетчиков во время операций со строками. Если флаг очищен, то счетчики инкрементируются, иначе декрементируются.





<== предыдущая лекция | следующая лекция ==>
Реализация стека | Указатель команд


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.709 сек.