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


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

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

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

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

 
« Предыдущая статья