Регистр флагов (PSW).
Символ | Позиция | Имя и назначение | ||||||||||||||||||||
P | PSW.0 | Флаг приоритета. Устанавливается и сбрасывается аппаратурно в каждом цикле команды и фиксирует нечетное/четное число единичных бит в аккумуляторе | ||||||||||||||||||||
- | PSW.1 | Не используется | ||||||||||||||||||||
OV | PSW.2 | Флаг переполнения. Устанавливается и сбрасывается аппаратурно при выполнении арифметических операций | ||||||||||||||||||||
RS0 - RS1 | PSW.3 - PSW.4 | Биты выбора используемого банка регистров. Могут быть изменены программным путем
| ||||||||||||||||||||
F0 | PSW.5 | Флаг пользователя. Может быть установлен, сброшен или проверен программой пользователя | ||||||||||||||||||||
АС | PSW.6 | Флаг вспомогательного переноса. Устанавливается и сбрасывается только аппаратными средствами при выполнении команд сложения и вычитания и сигнализирует о переносе или заеме в бите 3 аккумулятора | ||||||||||||||||||||
C | PSW.7 | Флаг переноса. Устанавливается и сбрасывается как аппаратурно, так и программным путем |
Таблица.4. Перечень флагов, их символические имена и условия формирования
Наиболее “активным” флагом PSW является флаг переноса, который принимает участие и модифицируется в процессе выполнения множества операций, включая сложение, вычитание и сдвиги. Кроме того, флаг переноса (C) выполняет функции “булева аккумулятора” в командах, манипулирующих с битами. Флаг переполнения (OV) фиксирует арифметическое переполнение при операциях над целыми числами со знаком и делает возможным использование арифметики в дополнительных кодах. ALU не управляет флагами селекции банка регистров (RS0, RS1), их значение полностью определяется прикладной программой и используется для выбора одного из четырёх регистровых банков.
В микропроцессорах, архитектура которых опирается на аккумулятор, большинство команд работают с ним, используя неявную адресацию. В Intel 8051 дело обстоит иначе. Хотя процессор имеет в своей основе аккумулятор, он может выполнять множество команд и без его участия. Например, данные могут быть переданы из любой ячейки RDM в любой регистр, любой регистр может быть загружен непосредственным операндом и т.д. Многие логические операции могут быть выполнены без участия аккумулятора. Кроме того, переменные могут быть инкрементированы, декрементированы и проверены без использования аккумулятора. Флаги и управляющие биты могут быть проверены и изменены аналогично.
Дата добавления: 2015-06-05; просмотров: 1212;