-
Указатель стека (ус).
Стек и указатель стека служат для осуществления вызова подпрограмм и возврата в прерванную подпрограмму.
Под стек отводится область памяти, в которой временно сохраняется информация, необходимая микропроцессору, для осуществления возврата из подпрограммы. Информация представляет собой текущее значение СК. Эту информацию микропроцессор загружает в стек по команде вызова подпрограммы.
Текущим значением СК всегда является адрес следующей команды, поэтому сохраненный в стеке адрес указывает на команду, следующую непосредственно за командой вызова подпрограммы.
Поэтому когда при возврате из подпрограммы микропроцессор восстанавливает из стека значение СК, появляется возможность продолжить прерванную основную программу с требуемой команды, то есть с команды, следующей за вызовом подпрограммы.
В программу может быть вложена своя подпрограмма (то есть вложенная подпрограмма). При вызове вложенных подпрограмм необходимо сохранять информацию о возврате в вызванную подпрограмму. Таких подпрограмм, может быть достаточно много и при последовательном возврате в основную программу необходимо соблюдать очередность извлечения сохраненных адресов. Стек является наиболее удобным типом данных для организации такой очередности. Поддержание порядка здесь осуществляется с помощью указателя стека - регистра, в котором хранится адрес стека, определяющий первый свободный элемент в стеке. Значение этого адреса увеличивается или уменьшается на единицу при записи или извлечении из стека.
Регистр УС имеет длину равную 16 битам, так как хранит адреса памяти и может содержать любой из 216 + 1 = 65537 адресов ЭВМ. Так много вложенных подпрограмм никто не использует. Обычно их число ограничивается единицами, и область памяти, отводимая под стек, также невелика.
Увлекшись при программировании можно нарушить границы стека, разрушив данные, хранящие в других важных областях памяти. Чтобы этого не происходило в микропроцессоре предусмотрена возможность слежения за содержимым регистра УС. Как только адрес указателя стека превысит допустимые величины нижней и верхней границ микропроцессор может остановить выполнение программы. Поэтому при пользовании стеком программист должен заранее рассчитать его максимальную длину во избежание критических ситуаций.
-
Регистр общего назначения (рон).
РОН предоставляют программисту расширение возможностей по обработке данных (регистры В и С). Число этих регистров в разных микроЭВМ различны. В 16-разрядной их может быть два. Они служат для временного промежуточного заполнения данных, участвующих в обработке.
Регистры В и С совместно могут выполнять функции 16-разрядного регистра, содержимое которого можно, к примеру, помещать в РА. Регистры В и С можно использовать отдельно и совместно.