Специальные назначения регистров блока РОН возможно и усложняют программирование (надо помнить, кто за что отвечает), но в сочетании с заложенным богатством функциoнального назначения команд принятое архитектурное решение ведет фактически к уменьшению объема программ
В число базовых регистров процессора Pentium входят 32-битные регистр признаков EFLAGS и указатель команд ЕIP.
32-разрядный указатель команд EIP предназначен для задания внутрисегментного смещения при определении адреса выполняемой команды. Смещение задается относительно базового адреса сегмента команд CS. Младшие 16 бит регистра EIP содержат 16-разрядный указатель команд IP, который используется при адресации команд в программах, написанных для 16-разрядных процессоров 8086 и 80286. Указатель команд EIP программно недоступен. Его содержимое изменяется ри выполнении команд передачи управления и при вызове обработчиков прерываний.
32-разрядный регистр признаков EFLAGS содержит флаги, которые можно разделить на три класса: флаги результата, флаги управления и системные флаги.
Шесть флагов результата CF, PF, AF, ZF, SF и OF фиксируют признак результата АЛУ. Значения этих флагов можно использовать при выполнении команд условных переходов для выбора требуемой ветви продолжения программы. Назначение флагов результата следующее.
СF (Carry Flag)- флаг переноса, фиксирующий значение переноса (заема), возникающего при сложении (вычитании) байтов, слов или двойных слов, а также значение выдвигаемого бита при сдвиге операнда.
PF (ParityFlag) - флаг четности (или паритета), фиксирующий наличие четного числа единиц в младшем байте результата операции. Флаг четности может быть использован, например, для контроля правильности передачи данных.
AF (Auxiliary Flag)- флаг межтетрадного переноса, фиксирующий перенос (заем) из младшей тетрады аккумулятора AL в старшую при сложении (вычитании). Флаг AF используется только в командах двоично-десятичной коррекции результата арифметических операций с двоично-десятичными операндами, которые оперируют исключительно с младшими байтами.
ZF (Zero Flag) - флаг нуля, фиксирующий нулевой результат операции.
SF (Sign Flag) - флаг знака. Флаг SF дублирует значение старшего бита результата, который при использовании дополнительного кода соответствует знаку числа.
OF (Overflow Flag) - флаг переполнения, фиксирующий переполнение при выполнении операций со знаковыми числами. Флаг OF сигнализирует о потере старшего бита результата операций сложения или вычитания в связи с переполнением разрядной сетки при работе со знаковыми числами. При сложении этот флаг устанавливается в 1, если происходит перенос в старший бит и нет переноса из старшего бита или имеется перенос из старшего бита, но отсутствует перенос в него. При вычитании флаг OF устанавливается в 1, когда возникает заем из старшего бита, но заем в старший бит отсутствует либо имеется заем в старший бит, но отсутствует заем из него. При отсутствии указанных условий флаг OF сбрасывается в 0. В системе команд процессора имеется специальная команда прерывания при переполнении, которая при установленном флаге OF генерирует программное прерывание.
В следующую группу флагов регистра признаков включены три флага управления DF, IF и SF, которые используются для управления работой микропроцессора.
Флаг направления DF (Direction Flag) служит для автоматического увеличения (инкремента) при DF=0 или уменьшения (декремента) при DF=1 на 1 содержимого регистров SI и DI при строковых операциях. Можно сказать, что с помощью флага DF обеспечивается реализация ограниченной автоинкрементной или автодекрементной адресации. Флаг DF устанавливается и сбрасывается с помощью команд STD (установить флаг направления) и CLD (сбросить флаг направления).
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.