Выражения признательности - Выражения признательности

В некоторых устройствах при выполнении команды «goto» адрес возврата вообще нигде не сохраняется. В таком случае для имитации вызова подпрограммы адрес возврата необходимо сохранить в виде переменной. Это может быть реализовано следующим образом:

ReturnVar = AflerGolo goto ; Сохранить адрес возврата
goto Subroutine ; Вызвать подпрограмму

AfterGoto

Subroutine ; Начало подпрограммы

ProgramCounter = ReturnVar ; Возвратиться к команде следующей за goto

Функции — это сложные подпрограммы, при выполнении которых определенные параметры передаются из исходной программы в подпрограмму, а после завершения возвращаются обратно. Например, функция на языке С может быть определена следующим образом:

int Func( int i, char far * Ptr );

В этом примере «Func» — функция, требующая два входных параметра: целое число и указатель, и возвращающая значение целого числа. Один из наиболее эффективных и часто встречающихся способов передачи параметров в функцию — это поместить их в стек перед вызовом функции. В подпрограмме можно загрузить индексный регистр значением указателя стека и таким образом получить доступ к параметрам. Этот метод обработки параметров имеет существенное преимущество по сравнению с другими методами: для передачи параметров используется специально выделенный фрагмент памяти. Переменные, определенные внутри функции (включая входные параметры), часто называются «локальными» или «автоматическими», так как они используются только данной функцией, и память для их размещения выделяется автоматически.

Go to Top