Энциклопедия Turbo Pascal. Главы 1-4 - Внутренние форматы данных и соглашения о связях в языке Турбо Паскаль

ОГЛАВЛЕНИЕ

Внутренние форматы данных и соглашения о связях в языке Турбо Паскаль

Прежде чем писать подпрограмму на ассемблере для использования ее в программе на языке Турбо Паскаль необходимо понять , как данные представляются в  программе и  как они передаются между подпрограммами.  Для версии ИБМ все глобальные переменные и константы хранятся в сегменте данных и доступ к ним осуществляется с использованием регистра DS. Все локальные переменные помещаются в стек и доступ к ним осуществляется с применением регистра ВР, который используется для индексации стека. Рис.19 показывает способ хранения для данных каждого типа. Следует иметь в виду, что байты указателей задаются в обратном порядке. Следовательно, указатель, имеющий смещение В000 и сегмент 0010, будут храниться в следующем виде:

    -------¬   -------¬   -------¬   -------¬
    ¦  10  ¦   ¦  00  ¦   ¦  00  ¦   ¦  B0  ¦
    L-------   L-------   L-------   L------.
    Сегмент                 Смещение

Соглашения о связях представляют собой метод,  который используется компьютером языка Турбо Паскаль для передачи информации подпрограмм и передачи результатов. В языке Турбо Паскаль для передачи параметров в подпрограмму используется стек  /он также используется для передачи результатов функции/.  При этом в регистре АХ передается результат однобайтовой или однословной функции.  Точное содержимое стека при вызове подпрограммы запвисит от типа передаваемых переменных и от типа передачи параметра.