ВНУТРЕННИЕ ФОРМАТЫ ДАННЫХ И СОГЛАШЕНИЯ О СВЯЗЯХ В ЯЗЫКЕ
ТУРБО ПАСКАЛЬ
Прежде чем писать подпрограмму на ассемблере для использова-
ния ее в программе на языке Турбо Паскаль необходимо понять , как
данные представляются в программе и как они передаются между
подпрограммами. Для версии ИБМ все глобальные переменные и конс-
танты хранятся в сегменте данных и доступ к ним осуществляется с
использованием регистра DS. Все локальные переменные помещаются в
стек и доступ к ним осуществляется с применением регистра ВР, ко-
торый используется для индексации стека. Рис.19 показывает способ
хранения для данных каждого типа. Следует иметь в виду, что байты
указателей задаются в обратном порядке. Следовательно, указатель,
имеющий смещение В000 и сегмент 0010, будут храниться в следующем
виде:
+------+ +------+ +------+ +------+
¦ 10 ¦ ¦ 00 ¦ ¦ 00 ¦ ¦ B0 ¦
+------+ +------+ +------+ +------+
Сегмент Смещение
Соглашения о связях представляют собой метод, который ис-
пользуется компьютером языка Турбо Паскаль для передачи информа-
ции подпрограмм и передачи результатов. В языке Турбо Паскаль для
передачи параметров в подпрограмму используется стек /он также
используется для передачи результатов функции/. При этом в ре-
гистре АХ передается результат однобайтовой или однословной функ-
ции. Точное содержимое стека при вызове подпрограммы запвисит от
типа передаваемых переменных и от типа передачи параметра.
----------------------------------------------------------------
Тип Длина Комментарии
данного данного
----------------------------------------------------------------
двоичный 1 байт
однобай- 1 байт
товый
символьный 1 байт
целый 2 байта
целый ко- 1 байт
роткий
целый 4 байта
длинный
слово 2 байта
вещест- 6 байт Первый байт содержит мантиссу, следующий
венный байт является младшим и последний байт
является старшим
одиночный 4 байта Стандартный формат числа с плавающей
запятой
двойной 8 байт Стандартный формат числа с плавающей
запятой и с двойной точностью
расширен- 10 байт Стандартный формат числа с плавающей
ный запятой и повышенной точностью
для вы- 3 байт Дополнительный код числа с плавающей
числений запятой
строка перемен- Первый байт содержит текущую длину строки;
ная следующий байт является первым символом
строки
множество перемен- Поскольку каждый элемент использует один
ная бит и максимальное число элементов равно
256, то максимальная длина множества равна
32 байта
Указатель 4 байта Два младших байта содержат смещение, а
старшие байты содержат сегмент. Байты
хранятся в обратном порядке. Нулевое
значение занимает 4 байта
Массивы перемен- Значения с меньшим индексом имеют меньший
ная адрес памяти
Записи перемен- Первое поле имеет наименьший адрес,
ная последнее поле имеет самый старший адрес
---------------------------------------------------------------
Рис.19. Представление данных в памяти