КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Регистр флагов
В состав микропроцессора входит 16-разрядный регистр флагов, обозначаемый Flags. Он состоит из отдельных разрядов, имеющих самостоятельное значение. Формат регистра Flags и назначение его битов приведено ниже. ┌───┬───┬───┬───┬────┬────┬────┬────╥────┬────┬───┬────┬───┬────┬───┬────┐ │ 1 │ 1 │ 1 │ 1 │ OF │ DF │ IF │ TF ║ SF │ ZF │ 0 │ AF │ 0 │ PF │ 1 │ CF │ └───┴───┴───┴───┴────┴────┴────┴────╨────┴────┴───┴────┴───┴────┴───┴────┘ 15 0 Разряды 15-12, 5, 3 и 1 не используются. При записи они должны содержать значения, показанные на приведённом выше рисунке. В последующих микропроцессорах (80286, 80386 и т.д.) часть этих разрядов была задействована для выполнения новых функций. OF (разряд 11) – флаг переполнения. Он устанавливается в арифметических операциях, свидетельствуя о возникновении переполнения при обработке чисел со знаком. DF (разряд 10) – флаг направления. Нулевое значение этого флага соответствует обработке строковых операндов в порядке возрастания их адресов, единичное – в порядке убывания. IF (разряд 9) – флаг разрешения прерывания. Нулевое значение этого флага запрещает обработку маскируемых прерываний, единичное – разрешает. TF (разряд 8) – флаг трассировки. Когда он установлен, после выполнения каждой инструкции микропроцессора происходит прерывание, используемое обычно в отладочных целях. Когда этот флаг сброшен, прерывание по окончании инструкции не возникает. SF (разряд 7) – флаг знака. Изменяется большинством арифметико-логических команд. Нулевое значение показывает, что в операции над числами со знаком было получено неотрицательное число, единичное значение – что результатом является отрицательное число. Таким образом, этот флаг повторяет значение старшего (знакового) разряда результата. ZF (разряд 6) – флаг нуля. Изменяется большинством арифметико-логических команд. Этот флаг сбрасывается в нуль, если результат операции отличен от нуля, и устанавливается, если результат равен нулю. AF (разряд 4) – флаг вспомогательного переноса. Устанавливается в командах сложения и вычитания при возникновении переноса из третьего или заёма в третий разряд соответственно. Этот флаг используется командами десятичной коррекции DAA и DAS. PF (разряд 2) – флаг чётности. Устанавливается, если младший байт результата операции содержит чётное число единичных разрядов, сбрасывается в противном случае. CF (разряд 0) – флаг переноса. Устанавливается при возникновении переноса или заёма из/в старший разряд результата при выполнении команд сложения и вычитания, а также содержит значение выдвигаемого разряда в операциях сдвига. При описании каждой инструкции будет указано, какие разряды регистра Flags могут быть изменены при её выполнении и в каких случаях это происходит. Содержимое регистра флагов целиком доступно только для инструкций PUSHF и POPF, которые соответственно сохраняют его значение в стеке или извлекают из стека. Младший байт регистра Flags может быть загружен в регистр AH инструкцией LAHF, содержимое регистра AH может быть переслано в младший байт регистра Flags посредством инструкции SAHF. Кроме того, при возникновении прерывания состояние регистра Flags сохраняется в стеке. Инструкция IRET, обеспечивающая возврат из прерывания, подобно инструкции POPF восстанавливает содержимое регистра флагов из стека. Некоторые разряды регистра флагов могут быть проверены или изменены с помощью предназначенных для этого инструкций микропроцессора. Для арифметико-логических команд содержимое регистра Flags напрямую недоступно.
Дата добавления: 2014-01-11; Просмотров: 908; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |