3.14. Описание регистров
3.14.1. Регистр защиты от изменения конфигурации CCP
Бит |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
CCP |
+0х04 |
|
Чтение/запись |
Зап. |
Зап. |
Зап. |
Зап. |
Зап. |
Зап. |
Чт./Зап. |
Чт./Зап. |
Начальное значение |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
- Биты 7:0 - CCP[7:0] - защита от изменения конфигурации
Чтобы разрешить изменение защищенного регистра ввода-вывода или выполнить защищенную инструкцию в течение интервала времени, составляющего не более 4 циклов инструкции ЦПУ, в регистр CCP необходимо записать корректную сигнатуру. Все прерывания, возникшие по ходу этого интервала времени, игнорируются, а по его истечении - обрабатываются с учетом уровня и приоритета.
После записи сигнатуры защищенного регистра ввода-вывода, в течение всего интервала активности защищенной записи, бит CCP[0] при чтении будет иметь единичное значение. По аналогии с этим, после записи сигнатуры защищенных инструкций SPM/LPM и в течение всего интервала, когда могут быть выполнены данные инструкции, бит CCP[1] при чтении будет иметь единичное значение. Биты CCP[7:2] всегда считываются с нулевым значением. В таблице 13.1 представлены сигнатуры для различных режимов.
Таблица 3.1. Режимы защиты ЦПУ от изменений
Сигнатура |
Групповая конфигурация |
Описание |
0x9D |
SPM |
Защищенная инструкция SPM/LPM |
0xD8 |
IOREG |
Защищенный регистр ввода-вывода |
3.14.2. RAMPD - регистр расширенной прямой адресации
Данный регистр объединятся с операндом для прямой адресации с помощью инструкций LDS/STS в пределах всего пространства памяти МК с объемом памяти данных более 64 кбайт. Доступ к данным в пределах первых 64 кбайт адресного пространства выполняется без использования данного регистра. В МК с размером памяти данных, в т.ч. внешней, менее 64 кбайт рассматриваемый регистр недоступен.
Бит |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
RAMPD |
+0х08 |
|
Чтение/запись |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Начальное значение |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
- Биты 7:0 - RAMPD[7:0]: биты расширенной прямой адресации
В данных битах хранится старший байт 24-битного адреса, который образуется содержимым регистра RAMPD и 16-битным операндом. Количество бит, использующихся для адресации к памяти данных, зависит от фактического ее объема в каждом конкретном микроконтроллере. Неиспользуемые биты всегда считываются с нулевыми значениями.
3.14.3. RAMPX - регистр расширения X-указателя
Данный регистр совмещается с X-регистром для косвенной адресации с помощью инструкций LD/LDD/ST/STD в пределах всего пространства памяти данных объемом более 64 кбайт. Доступ к первым 64 килобайтам адресного пространства осуществляется без использования этого регистра. В МК с объемом памяти данных, в т.ч. внешней, менее 64 кбайт рассматриваемый регистр недоступен.
Бит |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
RAMPX |
+0х09 |
|
Чтение/запись |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Начальное значение |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
- Бит 7:0 - RAMPX[7:0]: биты расширения X-указателя
В данных битах хранится старший байт 24-битного адреса, который образуется содержимым регистра RAMPX и 16-битным X-регистром. Количество бит, использующихся для адресации к памяти данных, зависит от фактического ее объема в каждом конкретном микроконтроллере. Неиспользуемые биты всегда считываются с нулевыми значениями.
3.14.4. RAMPY - регистр расширения Y-указателя
Данный регистр совмещается с Y-регистром для косвенной адресации с помощью инструкций LD/LDD/ST/STD в пределах всего пространства памяти данных объемом более 64 кбайт. Доступ к первым 64 килобайтам адресного пространства осуществляется без использования этого регистра. В МК с объемом памяти данных, в т.ч. внешней, менее 64 кбайт рассматриваемый регистр недоступен.
Бит |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
RAMPY |
+0х0A |
|
Чтение/запись |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Начальное значение |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
- Бит 7:0 - RAMPY[7:0]: биты расширения Y-указателя
В данных битах хранится старший байт 24-битного адреса, который образуется содержимым регистра RAMPY и 16-битным Y-регистром. Количество бит, использующихся для адресации к памяти данных, зависит от фактического ее объема в каждом конкретном микроконтроллере. Неиспользуемые биты всегда считываются с нулевыми значениями.
3.14.5. RAMPZ - регистр расширения Z-указателя
Данный регистр совмещается с Z-регистром для косвенной адресации с помощью инструкций LD/LDD/ST/STD в пределах всего пространства памяти данных объемом более 64 кбайт. RAMPZ также совмещается с Z-регистром при считывании содержимого ячеек памяти программ (ELPM) за пределами первых 64 кбайт адресного пространства и записи в ячейки памяти программ (SPM) за пределами первых 128 кбайт памяти программ.
Доступ к первым 64 килобайтам адресного пространства памяти данных, чтение первых 64 кбайт ячеек памяти программ, а также запись первых ее 128 кбайт осуществляются без использования рассматриваемого регистра. В МК с объемом памяти данных, в т.ч. внешней, и памяти программ менее 64 кбайт регистр RAMPZ недоступен.
Бит |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
RAMPZ |
+0х0B |
|
Чтение/запись |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Начальное значение |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
- Бит 7:0 - RAMPZ[7:0]: биты расширения Z-указателя
В данных битах хранится старший байт 24-битного адреса, который образуется содержимым регистра RAMPZ и 16-битным Z-регистром. Количество бит, использующихся для адресации к памяти данных, зависит от фактического ее объема в каждом конкретном микроконтроллере. Неиспользуемые биты всегда считываются с нулевыми значениями.
3.14.6. EIND - регистр расширенной косвенной адресации
Данный регистр совмещается с Z-регистром при необходимости выполнения расширенного косвенного перехода (EIJMP) или вызова подпрограммы (ECALL) в пределах всего адресного пространства в МК с памятью программ размером более 128 кбайт. Переход или вызов подпрограммы по адресу из первых 128 кбайт адресного пространства выполняется без использования данного регистра. В МК с размером памяти программ менее 128 кбайт данный регистр недоступен.
Бит |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
EIND |
+0х0C |
|
Чтение/запись |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Начальное значение |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
- Биты 7:0 - EIND[7:0]: биты расширенной косвенной адресации
В данных битах хранится старший байт 24-битного адреса, который образован регистром EIND и 16-битным Z-регистром. Количество использующихся бит данного регистра зависит от фактического размера памяти программы МК. Неиспользуемые биты считываются с нулевыми значениями.
3.14.7. SPL -регистр младшего байта указателя стека
Пара регистров SPH и SPL представляет 16-битное значение указателя стека SP. В SP хранится значение адреса вершины стека. Сразу после сброса, в указатель стека записывается последний адрес внутреннего SRAM.
Количество используемых бит в данных регистрах зависит от фактического объема памяти данных (до 64 кбайт), в т.ч. внешней, каждого конкретного МК. Неиспользуемые биты всегда считываются с нулевыми значениями.
Бит |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
SPL |
+0х0D |
|
Чтение/запись |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Начальное значение(1) |
0/1 |
0/1 |
0/1 |
0/1 |
0/1 |
0/1 |
0/1 |
0/1 |
Прим.: 1. Точное начальное значение необходимо выяснить в документации на МК.
- Биты 7:0 - SP[7:0]: младший байт указателя стека
В данных битах хранится значение младшего байта 16-битного указателя стека (SP).
3.14.8. SPH - регистр старшего байта указателя стека
Бит |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
SPH |
+0х0E |
|
Чтение/запись |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Начальное значение(1) |
0/1 |
0/1 |
0/1 |
0/1 |
0/1 |
0/1 |
0/1 |
0/1 |
Прим.: 1. Точное начальное значение необходимо выяснить в документации на МК.
- Биты 7:0 - SP[15:8]: старший байт указателя стека
В данных битах хранится значение старшего байта 16-битного указателя стека (SP).
3.14.9. SREG - регистр статуса
Регистр статуса (SREG) хранит информацию о результате выполнения арифметической или логической инструкции.
Бит |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
SREG |
+0х0F |
|
Чтение/запись |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Начальное значение |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
- Бит 7 - I: Общее разрешение прерываний
Бит общего разрешения прерываний управляет активностью всех прерываний. Если этот бит будет равен нулю, то ни одно из прерываний, даже если их работа разрешена в отдельных регистрах управления, не будет функционировать. При возникновении прерываний какие-либо действия над битом I на аппаратном уровне не выполняются. Установка и сброс бита I выполняется только программно с помощью инструкций SEI и CLI, соответственно (см. "Описание набора инструкций").
- Бит 6 - T: битовый аккумулятор
В инструкциях копирования бит, в т.ч. инструкции чтения бита BLD и записи бита BST, бит T выступает в роли битового аккумулятора, т.е. источника и получателя, соответственно. С помощью инструкции BST можно скопировать бит из регистрового файла в бит T, а с помощью BLD, наоборот, бит T копируется в бит регистрового файла.
- Бит 5 - H: флаг полупереноса
Флаг полупереноса (H) сигнализирует о возникновении в результате выполнения арифметической операции полупереноса. Данный флаг используется в двоично-десятичной арифметике. Подробное описание данного флага см. в разделе "Описание набора инструкций ".
- Бит 4 - S: бит знака, S = N V
Бит знака всегда равен исключающему ИЛИ между флагом отрицательного значения N и флага переполнения дополнения до двух. Подробное описание данного флага см. в разделе "Описание набора инструкций ".
- Бит 3 - V: флаг переполнения дополнения до двух
Флаг переполнения дополнения до двух (V) используется в арифметике кодов с дополнением до двух. Подробное описание данного флага см. в разделе "Описание набора инструкций ".
- Бит 2 - N: флаг отрицательного значения
Флаг отрицательного значения (N) сигнализирует, что результатом выполнения арифметической или логической операции является отрицательное значение. Подробное описание данного флага см. в разделе "Описание набора инструкций ".
- Бит 1 - Z: флаг нулевого значения
Флаг нулевого значения (Z) сигнализирует, что результатом арифметической или логической операции является нулевое значение. Подробное описание данного флага см. в разделе "Описание набора инструкций ".
Флаг переноса (C) сигнализирует, что в результате выполнения арифметической или логической операции возник перенос. Подробное описание данного флага см. в разделе "Описание набора инструкций ".
|