Регистр статуса - SREG
Регистр статуса - SREG - размещен в пространстве I/O по адресу $3F ($5F) и его биты определяются как:
Биты
|
|
$3F ($5F)
|
| REG
|
Чтение/Запись
| R/W
| R/W
| R/W
| R/W
| R/W
| R/W
| R/W
| R/W
|
|
|
Начальное состояние
|
|
|
- Bit 7 - I: Global Interrupt Enable - Разрешение глобального прерывания.
Бит разрешения глобального прерывания для разрешения прерывания должен быть установлен в состояние 1. Управление разрешением конкретного прерывания выполняется регистрами маски прерывания GIMSK и TIMSK. Если бит глобального прерывания очищен (в состоянии 0), то ни одно из разрешений конкретных прерываний, установленных в регистрах GIMSK и TIMSK, не действует. Бит I аппаратно очищается после прерывания и устанавливается для последующего разрешения глобального прерывания командой RETI. - Bit 6 - T: Bit Copy Storage - Бит сохранения копии.
Команды копирования бита BLD (Bit LoaD) и BST (Bit STore) используют бит T как бит источник и бит назначения при операциях с битами. Командой BST бит регистра регистрового файла копируется в бит T, командой BLD бит T копируется в регистр регистрового файла. - Bit 5 - H: Half Carry Flag - Флаг полупереноса
Флаг полупереноса указывает на полуперенос в ряде арифметических операций. Более подробная информация приведена в описании системы команд. - Bit 4 - S: Sign Bit, S = N V - Бит знака
Бит S всегда находится в состоянии, определяемом логическим исключающим ИЛИ (exclusive OR) между флагом отрицательного значения N и дополнением до двух флага переполнения V. Более подробная информация приведена в описании системы команд. - Bit 3 - V: Two’s Complement Overflow Flag - Дополнение до двух флага переполнения
Дополнение до двух флага V поддерживает арифметику дополнения до двух. Более подробная информация приведена в описании системы команд. - Bit 2 - N: Negative Flag - Флаг отрицательного значения
Флаг отрицательного значения N указывает на отрицательный результат ряда арифметических и логических операций. Более подробная информация приведена в описании системы команд. - Bit 1 - Z: Zero Flag - Флаг нулевого значения
Флаг нулевого значения Z указывает на нулевой результат ряда арифметических и логических операций. Более подробная информация приведена в описании системы команд. - Bit 0 - C: Carry Flag - Флаг переноса
Флаг переноса C указывает на перенос в арифметических и логических операциях. Более подробная информация приведена в описании системы команд.
Указатель стека - Stack Pointer - SP
Микроконтроллеры AVR оснащены 16-разрядным указателем стека, размещенным в двух регистрах пространства I/O по адресам $3E ($5E) и $3D ($5D). Поскольку микроконтроллеры ATmega603/103 поддерживают объем SRAM до 64 Кбайт, то используются все 16 разрядов указателя стека.
Указатель стека указывает на область в SRAM данных, в которой размещаются стеки подпрограмм и прерываний. Объем стека в SRAM данных должен задаваться программой перед каждым вызовом подпрограммы и обработкой разрешенного прерывания. Указатель стека декрементируется на единицу, при каждом занесении командой PUSH данных в стек, и на две единицы при занесении данных в стек подпрограммой CALL и прерыванием.
Указатель стека инкрементируется на единицу, при извлечении данных из стека командой POP, и на две единицы при извлечении данных из стека при возврате из подпрограммы (RET) или возврате из прерывания (IRET).
Биты
|
|
$3E ($5E) $3D ($5D)
| SP15
| SP14
| SP13
| SP12
| SP11
| SP10
| SP9
| SP8
| SP7
| SP6
| SP5
| SP4
| SP3
| SP2
| SP1
| SP0
|
| SPH SPL
|
|
|
|
Чтение/Запись
| R/W
| R/W
| R/W
| R/W
| R/W
| R/W
| R/W
| R/W
| R/W
| R/W
| R/W
| R/W
| R/W
| R/W
| R/W
| R/W
|
|
|
Начальное состояние
|
|
|