Передача параметров через регистры
Передача через COMMON область
Введение
Часто необходимо не только "вызывать" подпрограмму, но и передавать в подпрограмму параметры. Формальным параметрам подпрограммы должны быть присвоены значения фактических параметров программы.
Решается проблема тремя способами:
а) передача через COMMON область
б) передача через регистры
в) передача через стек
COMMON область – участок ОЗУ, который ( по договорённости программистов пишущих программу и подпрограмму) зарезервирован для передачи данных между программами и подпрограммами. Программа пишет фактические значения в эту область, подпрограмма – считывает из этой области.
Недостатки:
- дополнительная, нежелательная связь между программой и подпрограммой
- адреса не могут быть изменены без одновременной перекомпиляции - как программы, так и подпрограммы.
Достоинства:
- относительно быстрый способ передать большие данные большого объёма.
Применение:
- передача параметров в тех случаях, когда надо передать большие объемы данных, скорость критична, и ради скорости можно пожертвовать удобствами раздельной компиляции программ и подпрограмм.
В качестве COMMON области используется не участок ОЗУ, а регистр.
Достоинство:
- максимальная скорость
Недостаток:
- ограниченное число передаваемых данных
Чем больше объем регистров процессора, тем чаще удастся использовать этот способ и тем большую реактивность ЭВМ можно получить. Поэтому в процессорах, специализированных под решение задач с повышенной производительностью используются регистровые массивы повышенного объема.