Новости           

Программы

Turbo Pascal

Игры

Документация

"Странности"

FAQ

Ссылки

Благодарности

Гостевая книга

От автора

ВНУТРЕННИЕ ФОРМАТЫ ДАННЫХ И СОГЛАШЕНИЯ О СВЯЗЯХ В ЯЗЫКЕ ТУРБО ПАСКАЛЬ 

              Прежде чем писать подпрограмму на ассемблере для использова-
         ния ее в программе на языке Турбо Паскаль необходимо понять , как
         данные  представляются  в  программе  и  как они передаются между
         подпрограммами.  Для версии ИБМ все глобальные переменные и конс-
         танты  хранятся в сегменте данных и доступ к ним осуществляется с
         использованием регистра 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. Представление данных в памяти

(с)Все права защищены

По всем интересующим вопросампрошу писать на электронный адрес

    Rambler's Top100 PROext: Top 1000
    Rambler's Top100 Яндекс цитирования
Hosted by uCoz