русс | укр

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

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

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

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


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

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


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


Регистр флагов представляет собой 16-битовый регистр, где фиксируется информация о текущем состоянии процессора.

15 0

                OF DF IF TF SF ZF     AF     PF     CF

Рисунок 4.5. Регистр флагов

Флаг OF называется флагом переполнения и его значение, равное 1, свидетельствует о наличии ошибки в операциях над числами со знаком.

Флаг DF называется флагом направления, используется в командах работы со строками. При DF=1 регистр индекса , используемый в командах работы со строками увеличивается на 1 при каждом следующем выполнении команды, при DF=0 - регистр индекса на 1 уменьшается.

Флаг IF называется флагом прерывания. Обычно он устанавливается в 1 и такое его значение позволяет исполняемой программе пользователя реагировать на прерывания. Однако, когда вызывается программа обработки прерывания, флаг IF устанавливается в 0, чтобы никакие другие прерывания не могли помешать текущей обработке прерывания.

Флаг TF называется флагом трассировки, при его значении, равном 1, разрешается выполнение программы по шагам.

Флаг SF называется флагом знака и в соответствии со своим названием устанавливается в 1, если в результате выполнения операции над числами со знаком, получается отрицательное число.

Флаг ZF называется флагом нуля. Этот флаг устанавливается, если результатом операции является нулевое значение (если результат выполненной перед проверкой флага операции равен 0, флаг устанавливается в 1).

Флаг AF называется флагом вспомогательного переноса. Используется в двоично-десятичной арифметике. Этот флаг устанавливается в 1, если арифметическая операция приводит к заему или переносу четвертого справа бита однобайтового операнда (иначе говоря, этот флаг содержит бит, переносимый из третьего бита в четвертый бит в специализированных арифметических операциях).



Флаг PF называется флагом четности, он устанавливается в 1, если результат операции имеет четное количество 1 в двоичном представлении результата.

Флаг CF называется флагом переноса и в него заносится перенос (или заем) из знакового (старшего) разряда числа (это заем или перенос за пределы разрядной сетки представления числа).

Нужно уяснить, что не все команды программы на Ассемблере устанавливают в 0 или в 1 флаги. Причем, выполнение тех или иных команд связано с установкой конкретных флагов. Обратите внимание на это обстоятельство при изучении команд Ассемблера.

Еще раз обращаю внимание на формирование физического адреса в памяти компьютера.

Изучаемый микропроцессор имеет 1 Мбайт памяти ОЗУ. Следовательно, для указания адреса информации в команде микропроцессора должен был иметь 20 разрядов. Однако такое количество разрядов микропроцессора не может обработать за 1 операцию 16-битового процессора. Чтобы разрешить это противоречие, было решено формировать физический адрес из 2-х 16-битовых слагаемых: базы (содержимое регистра сегмента) и смещения по правилу:

Физический Адрес = смещение(IP) +1б*(регистр сегмента -CS).

В действительности длинная операция умножения при вычислении физического адреса не выполняется по той причине, что микропроцессор использует содержимое 16-битового регистра так, как если бы оно имело 4 дополнительных нулевых бита 0010->0100(*2)->1000(*4)->10000(*8)->100000(*16).

Например, пусть смещение будет 10Н (в шестнадцатеричной системе счисления), а адрес начала размещения сегмента (содержимое регистра сегмента) равно 2000Н. Тогда,

0000 0000 0001 0000 (смещение)

+0010 0000 0000 0000 0000 (номер блока)

___________________________________________

0010 0000 0000 0001 0000 (физический адрес)

Помимо удобства обработки, описанный метод адресации обусловлен тем, что команды программы и обрабатываемые ею данные располагаются в разных частях памяти или в разных сегментах. Если процессору потребуются данные, то процессор использует адрес, с которого начинается сегмент данных и смещение (или позицию искомой переменной в этом сегменте). Аналогично ищется команда программы.



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


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


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

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

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


 


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

 
 

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

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