Параметры процедур

Если в процедуру необходимо передать некоторую переменную, то для процедуры она является формальным параметром. А конкретное значение данной переменной, которое передается в процедуру для замещения соответствующего формального параметра, является фактическим параметром. Например, если описать некоторую процедуру для сложения двух чисел как SUM(x,y), то переменные x,y явл. формальными параметрами, а при обращении к процедуре для вычисления суммы 4 и 5

SUM(4,5) значения 4 и 5 являются фактическими парметрами.

Поэтому одну и ту же процедуру можно использовать многократно для разных наборов значений этих переменных, SUM(5,7) SUM (100,45)

Передача значений в процедуру называется передачей параметров.

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

Передавать параметры можно

· через регистры

· через стек

· через общую область памяти

· с помощью директив extern и public

Существует два способа передачи данных:

1. Передача параметров по значению

В этом случае передаются сами данные, т.е. их значения

!!! При передаче параметров по значению в процедуре обрабатываются их копии. Поэтому значения переменных в основной программе не изменяются!!!

2. Передача параметров по ссылке

В этом случае передаются адреса (ссылки) параметров

!!! Здесь обрабатываются не копии, а сами данные, поэтому при изменении данных в процедуре они автоматически изменяются и в вызывающей программе!!!

Т.Е. Передача параметра по ссылке означает передачу адреса ячейки, соответствующей фактическому параметру.

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

Самый простой способ передачи данных. Его суть заключается в следующем:

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

Аналогично поступают с результатом. Процедура помещает результат в какой-то регистр, а программа извлекает его оттуда.

!!! Если размер данных превышает 16 или 32 бит (размер регистра), то передавать нужно не сами данные, а ссылки на них.

Совет 1 Рекомендуется тщательно комментировать процедуру и основную программу.

Необходимо описать в какие регистры какие параметры помещаются, в какие регистры помещается результат.

Совет 2. Рекомендуется использовать при небольшом количестве параметров, т.к. число доступных регистров ограничено.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: