|
Большинство функций MS-DOS возвращает
свои значения этим способом. Однако, если все функции в программе
возвращают свои данные через регистры, то придется столкнуться с
задачей "большой бухгалтерии и перемешивания". |
1с бухгалтерия |
|
{img2} |
Навигационные системы |
|
Кроме этого, в
связи с тем, что регистры являются элементами, в которых произво-
дится большинство вычислений, налицо жесткая конкуренция по их
использованию.
Чаще всего регистры должны использоваться для небольших, час-
то используемых вызываемых программ, возвращающих немного значе-
ний и для программ, возвращаемые значения которых должны немед-
ленно подвергаться вычислениям. Одним из примеров этого случая
могла бы быть функция чтения символьных значений и преобразования
их в числовые значения.
Большинство языков высокого уровня для возвращаемых значений
используют различные технические приемы. |
системы резервного копирования |
|
|
Так, для возврата байто-
вого значения или значения, длиной в слово, обычно используется
регистр AX. Если необходимо возвратить значение, длиной в двойное
слово, такое как указатель far (далекий), то младшее значащее
слово (или часть смещения) возвращается в регистре AX, а старшее
значащее слово (или часть сегмента) возвращается в регистре DX. |
asplinux |
|
|
антивирусные программы, резервное копирование файлов, программы архиваторы, резервное копирование, антивирус panda, .
panda activescan
|
Такие понятия,
как "передача по значению" и "передача по адресу" могут помочь
оценить ситуацию, но действительное решение по использованию типа
передачи зависит от того, насколько ценны данные для вызывающей
программы (степень риска), и имела ли доступ вызываемая программа
к первоначальным данным. Это в действительности определяет на-
сколько большая защита требуется для этих данных.
- 2-18 -
Функции в сравнении с подпрограммами
Это сравнение часто требуется для вызываемой программы, при
возврате новых данных в вызывающую программу. Как было отмечено
ранее, те программы, которые возвращают значения, называются
функциями, а программы, не возвращающие значения, - подпрограмма-
ми. В языках высокого уровня функции ограничиваются возвратом
только одного значения. Любая другая информация, возвращаемая в
вызывающую процедуру, передается обратно путем модификации одного
или нескольких параметров. В языке Ассемблер применяются другие
ограничения. Рассмотрим эти опции.
Возврат значений в регистрах
Простейшим способом возврата значения является способ возвра-
та значения в регистре. Как и при передаче параметров, эта опция
может быть ограничена количеством доступных регистров и размером
возвращаемых данных. Положительным моментом этого способа возвра-
та является то, что данные легко доступны и могут быть легко про-
верены или использованы.
Возврат значения в регистре имеет смысл для часто вызываемых
функций. Это не требует специальной установки и предварительной
подготовки буферов и пр.
|
|
|