Архитектура базовой ЭВМ. Кириллов В.В. - 68 стр.

UptoLike

Составители: 

65
В микроЭВМ, имеющих несколько аккумуляторов или, лучше
сказать, регистров общего назначения, можно передавать в подпрограмму
(или получать из нее) большее число параметров. Но и число регистров
общего назначения также ограничено. Поэтому во всех микроЭВМ (как и
в базовой ЭВМ) есть возможность обмена параметрами через ячейки
памяти.
В табл. 2.18 приведен второй вариант программы для решения
примера 2.7.
Здесь использован один из возможных способов передачи
параметров: размещение параметров непосредственно за командой JSR.
Адрес возврата, записываемый командой JSR, в действительности
является адресом первого параметра. В подпрограмме приходится
производить наращивание этого адреса для выборки остальных
параметров и получения действительного адреса возврата - адреса
команды, расположенной за последним из параметров. В качестве
параметров можно использовать константы или переменные (адреса). В
последнем случае несколько усложняется обработка этих параметров (см.
табл. 2.18).
Таблица 2.18
Второй вариант программы получения удвоенного модуля трех чисел
Адрес
Содержимое
Комментарии
Код
Мнемоника
Основная программа
10
11
12
2030
0058
0074
JSR 30
Обращение к подпрограмме, за которым
располагаются данные: адрес Х и ячейки для
размещения 2 │Х│. В ячейку 30 передается адрес
11
13
14
15
2030
0063
0077
JSR 30
Обращение к подпрограмме, за которым
располагаются данные: адрес Y и ячейки для
размещения 2 Y│. В ячейку 30 передается адрес
14
16
17
18
2030
0058
0074
JSR 30
Обращение к подпрограмме, за которым
располагаются данные: адрес Z и ячейки для
размещения 2 Z│. В ячейку 30 передается адрес
17
19
F000
HLT
Останов ЭВМ
Подпрограмма получения удвоенного модуля
30
31
32
33
34
35
0000
F200
4830
3035
0030
0000
CLA
ADD (30)
MOV 35
ISZ 30
Ячейка для размещения адресов аргумента,
результата и возврата из подпрограммы
В ячейку 35 пересылается значение переменной,
на кото-рую указывает содержимое ячейки 30 (при
обращении к подпрограмме это содержимое
является адресом аргумента), а затем адрес в
ячейке 30 наращивается на 1 (теперь он указывает
на адрес результата)
36
F200
CLA
В ячейку пересылается адрес результата, а