Передача параметров через регистры

Передача через COMMON область

Введение

Часто необходимо не только "вызывать" подпрограмму, но и передавать в подпрограмму параметры. Формальным параметрам подпрограммы должны быть присвоены значения фактических параметров программы.

 

Решается проблема тремя способами:

а) передача через COMMON область

б) передача через регистры

в) передача через стек

 

COMMON область – участок ОЗУ, который ( по договорённости программистов пишущих программу и подпрограмму) зарезервирован для передачи данных между программами и подпрограммами. Программа пишет фактические значения в эту область, подпрограмма – считывает из этой области.

 

Недостатки:

- дополнительная, нежелательная связь между программой и подпрограммой

- адреса не могут быть изменены без одновременной перекомпиляции - как программы, так и подпрограммы.

 

Достоинства:

- относительно быстрый способ передать большие данные большого объёма.

 

Применение:

- передача параметров в тех случаях, когда надо передать большие объемы данных, скорость критична, и ради скорости можно пожертвовать удобствами раздельной компиляции программ и подпрограмм.

 

В качестве COMMON области используется не участок ОЗУ, а регистр.

 

Достоинство:

- максимальная скорость

 

Недостаток:

- ограниченное число передаваемых данных

 

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