Подпрограммы.
Достаточно часто встречаются ситуации, когда отдельные части программы должны выполнить одни и те же действия по обработке данных (например, вычисление тригонометрической функции). В подобных случаях повторяющиеся части программы выделяют в подпрограмму, а в соответствующие места программы заносят лишь команды обращения к этой подпрограмме. В базовой ЭВМ для этой цели ис-пользуется команда JSR (Обращение к подпрограмме). Ниже показана часть основной программы, содержащая две команды JSR 300, с помощью которых осуществляется переход к выполнению команд подпрограммы.
По команде JSR 300, расположенной в ячейке 25, выполняется запись числа 25 + 1 = 26 (текущего значения счетчика команд) в ячейку с адресом 300 и запись числа 300 + 1 = 301 в счетчик команд (адрес первой команды подпрограммы). Таким образом осуществляется переход к выполнению команд подпрограммы. Далее начинается процесс выполнения команд подпрограммы, который завершается командой BR (300), расположенной в ячейке 326. Эта команда безусловного перехода с кос-венной адресацией предписывает ЭВМ выполнить переход к команде, расположенной по адресу, сохраняемому в ячейке 300. Так как в эту ячейку ранее было записано число 26, то будет исполняться команда, находящаяся в ячейке 26, т.е. следующая за обращением к подпрограмме. Аналогично выполняется команда JSR 300, расположенная в ячейке 72 (после выполнения команд подпрограммы будет выполнен переход к ячейке 73).
Рис. 1.4. Иллюстрация работы команды JSR 300
Таким образом, при оформлении подпрограммы перед ее первой командой следует разместить ячейку, в которую будет пересылаться адрес возврата из подпрограммы. В команде обращения к подпрограмме указывается адрес именно этой ячейки (например, адрес М в команде JSR M). Последней командой подпрограммы должна быть команда выхода (команда BR (M) для подпрограммы, размещенной начиная с ячейки М). По ней осуществляется переход к команде, адрес которой сохраняется в первой ячейке подпрограммы.