Энциклопедия Turbo Pascal. Главы 1-4 - Передача результата функции

ОГЛАВЛЕНИЕ

Передача результата функции

Когда написанная на языке Турбо Паскаль функция завершает свою работу,  она передает значение результата обратно в вызывающую программу.  Для всех скалярных типов кроме вещественного значение передается через регистр АХ.  Для булевской переменной должен также устанавливаться флажок нуля:   единичное   значение означает булевское значение "истина", а нулевое значение означает булевское значение "ложь".  При передачи указателей сегмент передается в регистр DX,  а смещение передается в регистр АХ. Вещественные переменные передаются в виде DX:BX:AX, причем в регистр DX помещается старшее слово,  а в регистр АХ помещается младшее слово.

При передаче в качестве результата символьных строк,  массивов и записей адрес значения передается в виде  DX:AX.  Результат функции помещается сразу за адресом возврата.  На рис.20 показан вид стека при вызове функции.

                            -----------------------¬
                            ¦     Параметры        ¦
                            ¦        . . .         ¦
                            +----------------------+
         Вершина стека ---- ¦  Адрес возврата      ¦
                            +----------------------+
                            ¦                      ¦
                            ¦                      ¦
                            L----------------------

              Рис.20. Вид стека при вызове функции