Указатель стека SP
Этот 8-разрядный регистр с адресом $3D ($5D) хранит указатель стека процессора AT90S2313. 8-ми разрядов достаточно, для адресации ОЗУ в пределах $60-$DF.
Бит
$3D($5D) Чт./зап. (R/W) Начальн. знач. |
7 | 6 | 5
|
4 | 3 | 2 | 1 | 0 | |
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).