logo search
Микроконтроллеры семейства MCS-511

3.1.5.Регистр флагов (psw).

Символ

Позиция

Имя и назначение

P

PSW.0

Флаг приоритета. Устанавливается и сбрасывается аппаратурно в каждом цикле команды и фиксирует нечетное/четное число единичных бит в аккумуляторе

-

PSW.1

Не используется

OV

PSW.2

Флаг переполнения. Устанавливается и сбрасывается аппаратурно при выполнении арифметических операций

RS0 - RS1

PSW.3 - PSW.4

Биты выбора используемого банка регистров. Могут быть изменены программным путем

RS0

RS1

Банк

Границы адресов ОЗУ

0

0

0

00H - 07H

1

0

1

08H - 0FH

0

1

2

10H - 17H

1

1

3

18H - 1FH

F0

PSW.5

Флаг пользователя. Может быть установлен, сброшен или проверен программой пользователя

АС

PSW.6

Флаг вспомогательного переноса. Устанавливается и сбрасывается только аппаратными средствами при выполнении команд сложения и вычитания и сигнализирует о переносе или заеме в бите 3 аккумулятора

C

PSW.7

Флаг переноса. Устанавливается и сбрасывается как аппаратурно, так и программным путем

Таблица.4.Перечень флагов, их символические имена и условия формирования

Наиболее “активным” флагом PSW является флаг переноса, который принимает участие и модифицируется в процессе выполнения множества операций, включая сложение, вычитание и сдвиги. Кроме того, флаг переноса (C) выполняет функции “булева аккумулятора” в командах, манипулирующих с битами. Флаг переполнения (OV) фиксирует арифметическое переполнение при операциях над целыми числами со знаком и делает возможным использование арифметики в дополнительных кодах. ALU не управляет флагами селекции банка регистров (RS0, RS1), их значение полностью определяется прикладной программой и используется для выбора одного из четырёх регистровых банков.

В микропроцессорах, архитектура которых опирается на аккумулятор, большинство команд работают с ним, используя неявную адресацию. В Intel 8051 дело обстоит иначе. Хотя процессор имеет в своей основе аккумулятор, он может выполнять множество команд и без его участия. Например, данные могут быть переданы из любой ячейки RDM в любой регистр, любой регистр может быть загружен непосредственным операндом и т.д. Многие логические операции могут быть выполнены без участия аккумулятора. Кроме того, переменные могут быть инкрементированы, декрементированы и проверены без использования аккумулятора. Флаги и управляющие биты могут быть проверены и изменены аналогично.