Регистр флагов (PSW)
Флаг С устанавливается при переносе из разряда D7, т. е. в случае, если результат не помещается в восемь разрядов; флаг АС устанавливается при переносе из разряда D3 в командах сложения и вычитания и служит для реализации десятичной арифметики. Этот признак используется командой DAA.
Перечень флагов, их символические имена
и условия формирования
Таблица 1.4
Символ | Позиция | Имя и назначение | ||||||||||||||||||||
P | PSW.0 | Флаг паритета. Устанавливается и сбрасывается аппаратно в каждом цикле команды и фиксирует нечетное/четное число единичных бит в аккумуляторе | ||||||||||||||||||||
- | PSW.1 | Не используется | ||||||||||||||||||||
OV | PSW.2 | Флаг переполнения. Устанавливается и сбрасывается аппаратно при выполнении арифметических операций | ||||||||||||||||||||
RS0 - RS1 | PSW.3 - PSW.4 | Биты выбора используемого банка регистров. Могут быть изменены программным путем
| ||||||||||||||||||||
F0 | PSW.5 | Флаг пользователя. Может быть установлен, сброшен или проверен программой пользователя | ||||||||||||||||||||
АС | PSW.6 | Флаг вспомогательного переноса. Устанавливается и сбрасывается только аппаратными средствами при выполнении команд сложения и вычитания и сигнализирует о переносе или заеме в бите 3 аккумулятора | ||||||||||||||||||||
C | PSW.7 | Флаг переноса. Устанавливается и сбрасывается как аппаратно, так и программным путем |
Формат слова состояния PSW
Обознач. | Разряд | Наименование и назначение |
P | PSW.0 | Флаг паритета. Устанавливается и сбрасывается аппаратно: P=1, если в аккумуляторе нечетное число единиц; P=0, если в аккумуляторе четное число единиц |
– | PSW.1 | Флаг, определяемый пользователем. Устанавливается, сбрасывается и тестируется программно |
OV | PSW.2 | Флаг переполнения. Устанавливается и сбрасывается аппаратно при выполнении арифметических операций. |
RS0 | PSW.3 | Выбор банка регистров. Устанавливаются и сбрасываются программно: RS1=0, RS0=0: Банк 0 (Адреса 00H ¸ 07H) RS1=0, RS0=1: Банк 1 (Адреса 08H ¸ 0FH) RS1=1, RS0=0: Банк 2 (Адреса 10H ¸ 17H) RS1=1, RS0=1: Банк 3 (Адреса 18H ¸ 1FH) |
RS1 | PSW.4 | |
F0 | PSW.5 | Флаг общего назначения. Устанавливается, сбрасывается и тестируется программно |
AC | PSW.6 | Флаг вспомогательного переноса. Устанавливается и сбрасывается только аппаратно при выполнении команд сложения и вычитания и несет информацию о переносе или заеме в 3-ем разряде |
C | PSW.7 | Флаг переноса. Устанавливается и сбрасывается аппаратно (при выполнении арифметических и логических. операций) или программно. |
Флаг OV устанавливается при переносе из разряда D6, т. е. в случае, если результат не помещается в семь разрядов и восьмой не может быть интерпретирован как знаковый. Этот признак служит для организации обработки чисел со знаком.
Наконец, флаг Р устанавливается и сбрасывается аппаратно. Если число единичных бит в аккумуляторе нечетно, то Р = 1, в противном случае Р = 0.
Наиболее “активным” флагом PSW является флаг переноса, который принимает участие и модифицируется в процессе выполнения множества операций, включая сложение, вычитание и сдвиги. Кроме того, флаг переноса (C) выполняет функции “булева аккумулятора” в командах, манипулирующих с битами. Флаг переполнения (OV) фиксирует арифметическое переполнение при операциях над целыми числами со знаком и делает возможным использование арифметики в дополнительных кодах. ALU не управляет флагами селекции банка регистров (RS0, RS1), их значение полностью определяется прикладной программой и используется для выбора одного из четырёх регистровых банков.
В микропроцессорах, архитектура которых опирается на аккумулятор, большинство команд работают с ним, используя неявную адресацию. В Intel 8051 дело обстоит иначе. Хотя процессор имеет в своей основе аккумулятор, он может выполнять множество команд и без его участия. Например, данные могут быть переданы из любой ячейки RDM в любой регистр, любой регистр может быть загружен непосредственным операндом и т.д. Многие логические операции могут быть выполнены без участия аккумулятора. Кроме того, переменные могут быть инкрементированы, декрементированы и проверены без использования аккумулятора. Флаги и управляющие биты могут быть проверены и изменены аналогично.
Дата добавления: 2015-10-09; просмотров: 2442;