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