Энциклопедия Turbo Pascal. Главы 1-4 - Передача результата функции
ОГЛАВЛЕНИЕ
Передача результата функции
Когда написанная на языке Турбо Паскаль функция завершает свою работу, она передает значение результата обратно в вызывающую программу. Для всех скалярных типов кроме вещественного значение передается через регистр АХ. Для булевской переменной должен также устанавливаться флажок нуля: единичное значение означает булевское значение "истина", а нулевое значение означает булевское значение "ложь". При передачи указателей сегмент передается в регистр DX, а смещение передается в регистр АХ. Вещественные переменные передаются в виде DX:BX:AX, причем в регистр DX помещается старшее слово, а в регистр АХ помещается младшее слово.
При передаче в качестве результата символьных строк, массивов и записей адрес значения передается в виде DX:AX. Результат функции помещается сразу за адресом возврата. На рис.20 показан вид стека при вызове функции.
-----------------------¬
¦ Параметры ¦
¦ . . . ¦
+----------------------+
Вершина стека ---- ¦ Адрес возврата ¦
+----------------------+
¦ ¦
¦ ¦
L----------------------
Рис.20. Вид стека при вызове функции