русс | укр

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

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

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

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


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

Флаги и их назначение.


Дата добавления: 2014-11-27; просмотров: 864; Нарушение авторских прав


 

Подавляющее большинство программ имеют вид сложных ветвленных алгоритмов. В такой программе нередко требуется принять решение на основании результата только что исполненной команды. В этом случае используется регистр флагов (признаков) - в него АЛУ МП автоматически записывает некоторые результаты полученные при выполнении операций. Каждый флаг может иметь два значения: истинно (флаг=1) и ложно (флаг=0).

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

15 7 0

        OF DF IF TF SF ZF AF PF    

 

Все флаги можно разделить на две группы:

1) Неоперационные - флаги управления МП. Они выставляются программистом с помощью специальных команд. Предназначены для переключения режимов работы МП:

DF - флаг НАПРАВЛЕНИЯ. Устанавливается командами CLD и STD. Используется в командах обработки строк для указания направления продвижения по строке данных. Если DF = 0, то строка сканируется от меньших адресов к большим.

IF - флаг ПРЕРЫВАНИЙ. Устанавливается командами CLI и STI. Используется для запрещения ВНЕШНИХ прерываний (ЗА ИСКЛЮЧЕНИЕМ НЕМАСКИРУЕМЫХ). Если IF = 0, то прерывания не возникают.

TF - флаг ТРАССИРОВКИ. Устанавливается комбинацией команд через стек (смотрите применение команды PUSHF). Используется для перевода микропроцессора в одношаговый режим. Если TF = 1, включен режим трассировки.

2) Операционные - флаги устанавливаются автоматически в зависимости от результата выполнения предыдущей операции. Используются для управления ветвлением в программах:

OF - флаг ПЕРЕПОЛНЕНИЯ. Устанавливается арифметическими операциями. Используется для определения переполнения в операциях с числами, представленными в дополнительном коде. Если OF = 1, то результат арифметической операции вышел за допустимые пределы.



SF - флажок ЗНАКА. Устанавливается арифметическими операциями. Используется для определения знака числа в знаковой арифметике по старшему биту результата операции. Если SF = 1, то результат отрицательный.

ZF - флаг НУЛЯ. Устанавливается арифметическими операциями. Показывает, был ли равен нулю результат последней операции. Если ZF = 1, то результат равен нулю.

AF - флаг ДОПОЛНИТЕЛЬНОГО ПЕРЕНОСА. Устанавливается арифметическими операциями. Используется в командах десятичной арифметики. Фиксирует перенос из младшей тетрады результата в старшую. Если AF = 1, то произошел перенос.

PF - флаг ЧЕТНОСТИ. Устанавливается арифметическими операциями. Используется для контроля правильности передачи данных. Фиксирует наличие четного количества единиц в младших 8 битах результата последней операции. Если PF = 1, то количество единиц четное.

CF - флаг ПЕРЕНОСА. Устанавливается арифметическими операциями. Используется для определения переноса (при сложении) или заема (при вычитании), а также значения выдвигаемого бита после операций сдвигов. Если CF = 1, то произошел перенос (заем).

Состояние некоторых флагов можно изменить с помощью команд управления состоянием отдельных флажков.

CLC сбросить флаг CF в 0

STC Установить флаг CF в 1

CMC Инвертировать флаг CF

CLD Сбросить флаг DF в 0

STD Установить флаг DF в 1

CLI Сбросить флаг IF в 0

STI Установить флаг IF в 1

Для организации ветвлений используются команды передачи управления или переходов. Их выполнение заключается в изменении содержимого регистров CS и IP.

 



<== предыдущая лекция | следующая лекция ==>
Создание исполняемого файла | Команда безусловного перехода JMP


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


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

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

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


 


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

 
 

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

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