И регистры общего назначения
Аккумулятор Aявляется источником операнда и местом фиксации результата при выполнении арифметических, логических операций и ряда операций передачи данных. Кроме того, только с использованием аккумулятора могут быть выполнены операции сдвигов, проверка на нуль, формирование флага паритета и т.п. В распоряжении пользователя имеются 8 регистров общего назначения R0–R7 одного из четырёх возможных банков. При выполнении многих команд в ALU формируется ряд признаков операции (флагов), которые фиксируются в регистре слова состояния PSW. В таблице 3 приводится перечень флагов PSW, даются их символические имена и описываются условия их формирования.
Наиболее “активным” флагом PSW является флаг переноса, который принимает участие и модифицируется в процессе выполнения множества операций, включая сложение, вычитание и сдвиги. Кроме того, флаг переноса (C) выполняет функции “булева аккумулятора” в командах, манипулирующих с битами. Флаг переполнения (OV) фиксирует арифметическое переполнение при операциях над целыми числами со знаком и делает возможным использование арифметики в дополнительных кодах. ALU не управляет флагами селекции банка регистров (RS0, RS1), их значение полностью определяется прикладной программой и используется для выбора одного из четырёх регистровых банков.
В микропроцессорах, архитектура которых опирается на аккумулятор, большинство команд работают с ним, используя неявную адресацию. В семействе Intel 51 дело обстоит иначе. Хотя процессор имеет в своей основе аккумулятор, он может выполнять множество команд и без его участия. Например, данные могут быть переданы из любой ячейки RDM в любой регистр, любой регистр может быть загружен непосредственным операндом и т.д. Многие логические операции могут быть выполнены без участия аккумулятора. Кроме того, переменные могут быть инкрементированы, декрементированы и проверены без использования аккумулятора. Флаги и управляющие биты могут быть проверены и изменены аналогично.
Таблица 3 - Формат слова состояния программы PSW
Символ | Разряд | Имя и назначение |
C | PSW.7 | Флаг переноса. Устанавливается и сбрасывается аппаратно или программно при выполнении арифметических и логических операций |
AC | PSW.6 | Флаг вспомогательного переноса. Устанавливается и сбрасывается только аппаратно при выполнении команд сложения и вычитания и сигнализирует о переносе или займе в бите 3 |
F0 | PSW.5 | Флаг 0. Может быть установлен, сброшен или проверен программой как флаг, специфицируемый пользователем |
RS1 | PSW.4 | Выбор банка регистров. Устанавливается и сбрасывается программно для выбора рабочего банка регистров (см. ниже). |
RS0 | PSW.3 | |
OV | PSW.2 | Флаг переполнения. Устанавливается и сбрасывается аппаратно при выполнении арифметических операций |
- | PSW.1 | Не используется |
P | PSW.0 | Флаг паритета. Устанавливается и сбрасывается аппаратно в каждом цикле и фиксирует нечётное/чётное число единичных битов в аккумуляторе, т.е. выполняет контроль по четности |
Выбор рабочего банка регистров
RS1 | RS0 | Банк | Границы адресов |
00Н – 07Н | |||
08H – 0FH | |||
10Н – 17Н | |||
18H – 1FH |
Устройство управления и синхронизации. Кварцевый резонатор, подключаемый к внешним выводам микроконтроллера XTAL, управляет работой внутреннего генератора, который в свою очередь формирует сигналы синхронизации. Устройство управления CU на основе сигналов синхронизации формирует машинный цикл фиксированной длительности, равной 12 периодам резонатора. Большинство команд микроконтроллера выполняется за один машинный цикл. Некоторые команды, оперирующие с 2-байтными словами или связанные с обращением к внешней памяти, выполняются за два машинных цикла. Только команды деления и умножения требуют четырех машинных циклов. На основе этих особенностей работы устройства управления производится расчёт времени исполнения прикладных программ.
Дата добавления: 2015-05-21; просмотров: 1072;