logo
TurboProlog / Документация / TOM_2

Вызов соглашений и передача параметров.

Семейство процессоров 8086 дает программисту выбор между вызовами

подпрограмм NEAR и FAR. Турбо Пролог требует, чтобы все вызовы и все воз-

враты из подпрограмм должны быть FAR.

Во многих компиляторах с языков для семейства 8086 вы можете выби-

рать между 16- и 32-разрядными указателями, где 16-разрядные указатели

ссылаются на сегмент умолчания. Для организации доступа ко всей памяти,

Турбо Пролог всегда использует 32-разрядные указатели.

При организации взаимодействия с программой, написанной на Си, пара-

метры заносятся в стек в обратном порядке и, после возврата, указатель

стека автоматически приспосабливается к Турбо Прологу. При организации

взаимодействия с другими языками параметры заносятся в обычном порядке, а

вызванная функция отвечает за перемещения параметров из стека.

Тип Размер участка

-----------------------------------------------------------------

integer 2 байта

real 8 байт (IEEE-формат)

char 1 байт (2 байта, если в стеке)

string 4-байтовое двойное слово - указатель конца строки

symbol 4-байтовое двойное слово - указатель конца строки

compound 4-байтовое двойное слово - указатель на запись

-----------------------------------------------------------------