Jump to content

Позвонить на сайт

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

 // this is a function ''definition''
 function sqr(x)
 {
   return x * x;
 }
 function foo() {
   // these are two call sites of function sqr in this function
   a = sqr(b);
   c = sqr(b);
 }

Пример ассемблера

[ редактировать ]

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

 * (usually) external call.... R13 usually points to a save area for general purpose registers beforehand
 *                         and R1 points to a list of addresses of parameters (if any)
         LA    R1,=A(B)         point to (address of) variable 'B'
         L     R15,=A(SQR)      Load pointer (address constant) to separately compiled/assembled subroutine
         BALR  R14,R15          Go to subroutine, which returns - usually at zero displacement on R14
 * internal call            (usually much smaller overhead and possibly 'known' parameters)
         BAL   R14,SQR          Go to program label and return

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

         BAL   R14,SQR          Go to program label and return (using offset on R14 as return address)
         B     OK               (RET+0) - O.K
 *                              (RET+4) - Failure

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

См. также

[ редактировать ]


Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: e8c3bacd33d27b8e58aa809a4ac80af4__1707672120
URL1:https://arc.ask3.ru/arc/aa/e8/f4/e8c3bacd33d27b8e58aa809a4ac80af4.html
Заголовок, (Title) документа по адресу, URL1:
Call site - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)