Регистр состояния - SREG


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

 

Бит 7 6 5 4 3 2 1 0

┌───┬───┬───┬───┬───┬───┬───┬───┐

$3F ($5F) │ I │ T │ H │ S │ V │ N │ Z │ C │ SREG

└───┴───┴───┴───┴───┴───┴───┴───┘

Чт./зап.(R/W) R/W R/W R/W R/W R/W R/W R/W R/W

Начальн.знач. 0 0 0 0 0 0 0 0

 

Бит 7 - I: Общее разрешение прерываний. Для разрешения прерываний этот бит должен быть установлен в единицу. Управление отдельными прерываниями производится регистрами маски прерываний - GIMSK и TIMSK. Если флаг сброшен (0), независимо от состояния GIMSK/TIMSK прерывания запрещены. Бит I очищается аппаратно после входа в прерывание и восстанавливается командой RETI, для разрешения обработки последующих прерываний.

Бит 6 - T: Хранение копируемого бита. Команды копирования битов BLD (Bit LoaD) и BST (Bit STore) используют этот бит как источник и приемник обрабатываемого бита. Бит из регистра регистрового файла может быть скопирован в T командой BST, бит T может быть скопирован в бит регистрового файла командой BLD.

Бит 5 - H: Флаг половинного переноса. Этот флаг индицирует перенос из младшей половины байта при некоторых арифметических операциях. Более подробно об этом можно прочитать в описании системы команд.

Бит 4 - S: бит знака, S = N XOR V. Бит S всегда равен исключающему ИЛИ между флагами N (отрицательный результат) и V (переполнение дополнения до двух). Более подробно об этом можно прочитать в описании системы команд.

Бит 3 - V: Флаг переполнения дополнения до двух. Этот флаг поддерживает арифметику с дополнением до двух. Более подробно об этом можно прочитать в описании системы команд.

Бит 2 - N: Флаг отрицательного результата. Этот флаг индицирует отрицательный результат различных арифметических и логических операций. Более подробно об этом можно прочитать в описании системы команд.

Бит 1 - Z: Флаг нулевого результата. Этот флаг индицирует нулевой результат различных арифметических и логических операций. Более подробно об этом можно прочитать в описании системы команд.

Бит 0 - C: Флаг переноса. Этот флаг индицирует перенос в арифметических и логических операциях. Более подробно об этом можно прочитать в описании системы команд.


Указатель стека SP

Этот 8-разрядный регистр с адресом $3D ($5D) хранит указатель стека процессора AT90S2313. 8-ми разрядов достаточно, для адресации ОЗУ в пределах $60-$DF.

 

Бит 7 6 5 4 3 2 1 0

┌──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┐

$3D ($5D) │ SP7 │ SP6 │ SP5 │ SP4 │ SP3 │ SP2 │ SP1 │ SP0 │SPL

└──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┘

Чт./зап. R/W R/W R/W R/W R/W R/W R/W R/W

Нач.знач. 0 0 0 0 0 0 0 0

 

Указатель стека указывает на область памяти в которой расположен стек вызова подпрограмм и прерваний. Область стека в ОЗУ должна быть задана до того как произойдет любой вызов подпрограммы или будут разрешены прерывания. Указатель стека уменьшается на 1 при записи данных в стек командой PUSH и уменьшается на 2 при вызове подпрограммы командой CALL или обработке прерывания. Указатель стека увеличивается на 1 при выборе данных из стека командой POP и увеличивается на 2 при выполнении команд возврата из подпрограммы или обработчика прерывания (RET или RETI).




Дата добавления: 2016-12-27; просмотров: 1820;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.007 сек.