Указатель стека - Stack Pointer - SP

Регистр статуса - SREG

Регистр статуса - SREG - размещен в пространстве I/O по адресу $3F ($5F) и его биты определяются как:

Биты
               
$3F ($5F)
I T H S V N Z C
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
 
Начальное состояние
               
               
 

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: