Если вы хотите использовать более техническую терминологию, вы можете сказать, что стек составляет пусто по убыванию .
По убыванию означает, что указатель стека уменьшен, пусто означает, что указатель стека указывает на следующую ячейку в стеке (следовательно, пустую ячейку).
Делая стеки растущими вниз, давайте поместим их в дальний конец области данных.
В то время как AVR пусто по убыванию, x86 полностью убывает, а ARM имеет все четыре комбинации, но обычно используется как полное убывание.
Примечание счетчика программы полезно из-за таких инструкций, как cpse
(ComPare Skip if Equal) или sbis
/ sbrc
/ sbrs
, которые увеличивают счетчик программы более чем на 1 (в зависимости от условия).
Все инструкции общего чипа AVR, но call
, jmp
, eicall
, eijmp
, icall
, ijmp
, ret
, reti
увеличивают счетчик программы (rcall
и * 1028) * также добавьте к нему константу, которая может привести к более низкому конечному значению).
Обратите внимание, что хотя слова памяти данных AVR являются 8-битными, слова памяти команд являются 16-битными, а счетчик программ обращается к словам.
Это не является необычным для микроконтроллеров, например, некоторые варианты PIC имеют 14-битные слова инструкций.