Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ассемблер.doc
Скачиваний:
21
Добавлен:
25.08.2019
Размер:
526.34 Кб
Скачать

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

Последний управляющий регистр - 16-битовый регистр флагов. Этот регистр содержит информацию, которая используется побитно, а не в качестве 16-битового числа. Биты флагового регистра имеют значение для процессора по-отдельности. Некоторые из этих бит содержат коды условий, установленные последней выполненой командой. Программа пользуется этими кодами для управления своим выполнением. Программа может тестировать коды условий и на основе полученных значений выбирать последовательность выполнения. Другие биты в регистре флагов показывают состояние процессора при выполнении текущей команды. Эти биты управляются специальными командами.

Регистр флагов лучше всего описывать последовательно, по одному биту. Структура регистра флагов показано на Фиг. 3.10. Заметим, что здесь определены не все биты. Остальные зарезервированы, то есть в настоящее время их значение не определено. Однако в дальнейших версиях процессора они могут быть использованы для каких-нибудь специальных целей. Поэтому никогда не следует расчитывать на неизменность значения зарезервированных бит.

номер бита

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

Мнемоника

x

x

x

x

OF

DF

IF

TF

SF

ZF

x

AF

x

PF

x

CF

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

Все флаги младшего байта регистра устанавливаются арифметическими или логическими операциями процессора. Например, операция ADD устанавливаетвсе флаги в младшем байте в соответствии с ее результатом. За исключением флага переполнения, все флаги старшего байта устанавливаются специально предназначенными для этого командами. Флаги старшего байта отражают состояние процессора 8088 и будут влиять на режим выполнения программы. Флаги в младшем байте - это коды условия и могут быть испольльзованы в командах условных переходов для изменения порядка выполнения программы.

3.14.4. Флаг знака

Флаг знака (SF) показывает, является результат последней арифметической операции положительным или отрицательным. Установка бита знака отражает значение старшего бита последнего результата. Если последний результат отрицателен, то бит знака устанавливается в еденицу, а если положительный или нулевой, то - в ноль.

3.14.5. Флаг нуля

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

3.14.6. Флаг четности

Флаг четности (PF) показывает, является ли число едениц результата последеней операции четным. Четность - это способ контроля значений данных. Бит четности - это дополнительный бит, который проверяет значения других бит. Программа может использовать флаг четности для определения, в какое значение следует установить бит четности. Четность используется в оперативной памяти IBM PC для контроля сохраненных в ней данных. Такой контроль четности выполняется непосредственноаппаратными средствами и не влияет на бит флага четности. Флаг четности устанавливается в "1", если результат операции имеет четное число едениц и переустанавливается в "0", если число едениц результата нечетно. В обычных арифметических и логических операциях знак четности использкется мало.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]