Организация ЭВМ и систем. Однопроцессорные ЭВМ. Часть 2


КОМАНДЫ ПЕРЕХОДА НА ПОДПРОГРАММУ


Подпрограмма представляет собой фрагмент программы, обращение к которому может иметь место в любой точке главной программы. Для перехода к подпрограмме в ЭВМ существуют команды безусловного и условного переходов к подпрограмме (ПП и ППУ). Их особенностью является то, что помимо перехода они должны обеспечить по окончании подпрограммы возврат к исходной программе, к той ее точке, откуда был совершен переход.

Ниже будут рассмотрены только команды безусловного

перехода к подпрограмме (ПП), поскольку на практике они встречаются наиболее часто. Кроме того, отличие команд ПП и ППУ такое же, как и отличие команд БП и УП, т.е. перед выполнением команды ППУ происходит проверка какого-либо признака результата из РгС (регистр состояния).

Рассмотрим подробнее операции, необходимые для выполнения команды ПП в предположении, что длина команды L = 2 байта и используется прямая адресация. Эти операции поясняются схемой, приведенной на рис. 5.18.

Перед выполнением команды ПП формируется адрес возврата (Авозвр), т.е. (СчК) = (СчК) + L (в данном случае это адрес N+2). Затем Авозвр

запоминается в ячейке памяти (регистре), адрес которой (которого) в явной или неявной форме указан в команде ПП. Затем в СчК заносится содержимое адресного поля команды ПП, т.е. адрес начала подпрограммы (А). В конце подпрограммы размещается команда возврата, которая фактически является командой БПК (безусловный косвенный переход), и указывает путем косвенной адресации (через ячейку ОП или регистр) адрес ячейки ОП, куда надо возвратиться для дальнейшего выполнения основной программы. В данном случае косвенная адресация осуществляется через регистр Рг.

Это простейший случай обращения к подпрограмме. Однако все современные ЭВМ допускают вложенность подпрограмм, т.е. обращение из одной подпрограммы к другой. При этом глубина вложения может быть достаточно велика. Для организации таких вложенных подпрограмм используется стек. В большинстве микропроцессоров сам стек располагается в ячейках ОП, а указатель стека оформлен в виде специального регистра.




Начало  Назад  Вперед



Книжный магазин