Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

В программировании сайт вызова из функции или подпрограмм расположение (строка коды) , где называется функция (или может быть вызвана через динамическую диспетчеризацию ). Место вызова - это место, где функции передается ноль или более аргументов и принимается ноль или более возвращаемых значений .

Пример [ править ]

 // это функция '' определение ''  function  sqr ( x )  {  return  x  *  x ;  }
 function  foo ()  {  // это два сайта вызова функции sqr в этой функции  a  =  sqr ( b );  c  =  sqr ( b );  }

Пример ассемблера [ править ]

IBM / 360 или Z / Архитектура

 *  ( Обычно )  внешний  вызов ....  R13  обычно  точки  в  виде  экономии  площади  для  общего  назначения  регистров  заранее  *  и  R1  точек  в  виде  списка  из  адресов  из  параметров  ( если  любой )  LA  R1 , = ( B ) точки на ( адрес из ) переменная ' B ' L        R15 , = ( SQR ) Загрузить указатель ( адрес постоянная ) в отдельно компилируется / собранной подпрограмма BALR R14 , R15 Перейти к подпрограмме , которая возвращается - как правило , при нулевом смещении на R14 * внутренний вызов ( как правило , гораздо меньше накладных и , возможно , « известное »                                 параметры )  BAL  R14 , SQR  Перейти  к  метке программы  и вернуть  

В некоторых случаях возврат является эффективным методом индикации успеха или неудачи. Возврат может быть выполнен путем возврата в +0 или + 4, + 8, +12 и т. д., требуя [ требуется пояснение ] небольшой таблицы переходов в точке возврата - чтобы перейти непосредственно к обработке дела (как в операторе HLL Switch ).

 BAL  R14 , SQR  Перейти  к  метке программы  и возврат ( используя смещение на R14 в качестве адреса возврата ) B FAIL ( RET + 0 ) - ЧТО-ТО НЕПРАВИЛЬНО * ( RET + 4 ) - OK                   

Однако обычно код возврата устанавливается в R15( 0= ОК, 4= сбой или аналогичный ..), но требует отдельной инструкции для тестирования R15или использования непосредственно в качестве индекса ветвления.

См. Также [ править ]

Ссылки [ править ]