Энциклопедия Turbo Pascal. Главы 1-4 - Внутренние форматы данных и соглашения о связях в языке Турбо Паскаль
ОГЛАВЛЕНИЕ
Внутренние форматы данных и соглашения о связях в языке Турбо Паскаль
Прежде чем писать подпрограмму на ассемблере для использования ее в программе на языке Турбо Паскаль необходимо понять , как данные представляются в программе и как они передаются между подпрограммами. Для версии ИБМ все глобальные переменные и константы хранятся в сегменте данных и доступ к ним осуществляется с использованием регистра DS. Все локальные переменные помещаются в стек и доступ к ним осуществляется с применением регистра ВР, который используется для индексации стека. Рис.19 показывает способ хранения для данных каждого типа. Следует иметь в виду, что байты указателей задаются в обратном порядке. Следовательно, указатель, имеющий смещение В000 и сегмент 0010, будут храниться в следующем виде:
-------¬ -------¬ -------¬ -------¬
¦ 10 ¦ ¦ 00 ¦ ¦ 00 ¦ ¦ B0 ¦
L------- L------- L------- L------.
Сегмент Смещение
Соглашения о связях представляют собой метод, который используется компьютером языка Турбо Паскаль для передачи информации подпрограмм и передачи результатов. В языке Турбо Паскаль для передачи параметров в подпрограмму используется стек /он также используется для передачи результатов функции/. При этом в регистре АХ передается результат однобайтовой или однословной функции. Точное содержимое стека при вызове подпрограммы запвисит от типа передаваемых переменных и от типа передачи параметра.