Составители:
64 
1) помещает в ячейку М адрес следующей за JSR М команды, т. е. 
команды,  которая  должна  выполняться  вслед  за  командами 
подпрограммы; 
2) передает управление команде, расположенной в ячейке с адресом 
М+1. 
Последней  исполняемой  командой  подпрограммы  должна  быть 
команда выхода, т. е. команда BR (М), по которой осуществляется переход 
к команде с адресом, хранимым в ячейке М. 
Пример 2.5. Получить удвоенный модуль чисел X, Y и Z, хранящихся в ячейках 
памяти 58, 63 и 71 соответственно. Результаты (2|Х|, |Y|, 2|Z|) поместить в ячейки 74, 77 
и 82. 
Для  решения  этой  задачи  можно  взять  за  основу  программу  примера  2.4, 
оформив  ее  фрагмент  в  виде  подпрограммы  (табл.  2.17).  В  программе  табл.  2.17  в 
подпрограмму  передается  всего  одна  величина:  в  аккумулятор  помещается  число, 
модуль  которого  нужно  удвоить.  Результат  вычислений  (опять  одна  величина) 
возвращается в основную программу через тот же аккумулятор. А как же передать и 
(или) получить два или большее число параметров? 
Таблица 2.17 
Первый вариант программы получения удвоенного модуля трех чисел  
Адрес 
Содержимое 
Комментарии 
Код 
Мнемоника 
Основная программа 
10 
11 
12 
13 
F200 
4058 
2030 
3074 
CLA 
ADD 58 
JSR 30 
MOV 74 
Запись  в  аккумулятор  значения  Х,  обращение  к 
подпрог-рамме  получения  удвоенного  модуля 
(запись в ячейку 30 адреса 13 и переход к команде, 
расположенной  по  адресу  31),  пересылка 
результата в ячейку для хранения 2 │Х│  
14 
15 
16 
17 
F200 
4063 
2030 
3077 
CLA 
ADD 63 
JSR 30 
MOV 77 
Те  же  действия,  что  и  в  командах  10–13,  но  над 
аргументом Y. При обращении к подпрограмме в 
ячейку 30 пересылается адрес возврата 17 
18 
19 
1A 
1B 
F200 
4071 
2030 
3082 
CLA 
ADD 71 
JSR 30 
MOV 82 
Те  же  действия,  что  и  в  командах  10–13,  но  над 
аргументом Z. При обращении к подпрограмме в 
ячейку 30 пересылается адрес возврата 1B 
1C 
F000 
HLT 
Останов ЭВМ 
Подпрограмма получения удвоенного модуля 
30 
31 
0000 
9034 
BPL 34 
Ячейка для размещения адреса возврата 
Первая  команда:  проверяет  знак  числа  в 
аккумуляторе,  и  если  он  положительный,  то 
передает  управление  командам  удвоения 
содержимого аккумулятора 
32 
33 
F400 
F800 
CMA 
INC 
Изменение знака 
34 
35 
F600 
C830 
ROL 
BR (30) 
Удвоение содержимого аккумулятора 
Выход  из подпрограммы (переход  к выполнению 
команды, адрес которой хранится в ячейке 30) 
Страницы
- « первая
- ‹ предыдущая
- …
- 65
- 66
- 67
- 68
- 69
- …
- следующая ›
- последняя »
