Также по теме: новые интернет магазины матрасов Москвы, производство России.

Последние статьи

КОМПЬЮТЕРНАЯ ЛИТЕРАТУРА - Форматы загружаемых объектных модулей

Индекс материала
Форматы загружаемых объектных модулей
Стр. 2
Стр. 3
Стр. 4
Стр. 5
Стр. 6
Стр. 7
Стр. 8
Стр. 9
Все страницы

               ФОРМАТЫ ЗАГРУЖАЕМЫХ ОБЪЕКТНЫХ МОДУЛЕЙ

     __________________________________________________________


     7.1   Введение
     7.1.1   Определение терминов
     7.2   Идентификация модуля и атрибуты
     7.2.1   Определение сегмента
     7.2.2   Адресация сегмента
     7.2.3   Определение имен
     7.2.4   Индексы
     7.3   Концепция привязки
     7.3.1   Внунтрисегментная привязка
     7.3.2   Межсегментная привязка
     7.4   Последовательность записей
     7.5   Форматы записей
     7.5.1   Формат записи-примера        (SAMREC)
     7.5.2   Заголовочная запись Т-модуля (THEADR)
     7.5.3   Заголовочная запись L-модуля (LHEADR)
     7.5.4   Запись списка имен           (LNAMES)
     7.5.5   Запись определения сегмента  (SEGDEF)
     7.5.6   Запись определения группы    (GRPDEF)
     7.5.7   Запись определения имен 'public'   (PUBDEF)
     7.5.8   Запись определения имен 'communal' (COMDEF)
     7.5.9   Запись определения имен 'local'    (LOCSYM)
     7.5.10  Запись определения имен 'external' (EXTDEF)
     7.5.11  Запись нумерации строк             (LINNUM)
     7.5.12  Логическая упорядоченная запись данных (LEDATA)
     7.5.13  Логическая запись повторяемых данных   (LIDATA)
     7.5.14  Запись привязки              (FIXUPP)
     7.5.15  Конечная запись модуля       (MODEND)
     7.5.16  Запись комментариев          (COMENT)
     7.6   Представление типа для переменных 'communal'
     __________________________________________________________


                        7.1. Введение
                             НННННННН

     В этой главе  дается описание форматов  записей объектных
модулей,  определяющих  объектный  язык  для  микропроцессоров
8086, 80186 и 80286.  Объектный язык процессора 8086  является
выходным  продуктом  трансляторов  со  всех  языков,  (имеющих
процессор 8086)  собираемым впоследствии  программой Microsoft
linker.  Объектный язык 8086 используется при вводе/выводе для
процессоров  объектных  языков  (сборщики  и др.) операционных
систем XENIX, PC-DOS и MS-DOS.

     Полный  список  записей  приведен  в оглавлении. Описание
форматов записей будет дано ниже.

     __________________________________________________________
     Примечание
               Если объектный  модуль содержит  неопределенные
               величины,  то   поведение  сборщика   Microsoft
               неопределено.   Все   неопределенные   величины
               резервируются     фирмой     Microsoft      для
               использования в будущих версиях системы.
     __________________________________________________________


     7.1.1. Определение терминов
            ДДДДДДДДДДДДДДДДДДДД

     Ниже   приводятся    определения    основных    терминов,
используемых в описании объектного модуля.

     OMF - Форматы объектного модуля.

     MAS - Адресное  пространство  памяти.    8086  MAS  равно
           одному мегабайту (1048576 байт).  Следует отметить,
           что  MAS  отличается   от  реальной  памяти,   т.к.
           последняя занимает только часть MAS.

     Модуль  -

           это  неделимое  единство  объектного  кода и другой
           информации,   создаваемое   в   результате   работы
           транслятора.

     Т-модуль -

           это модуль, создаваемый такими  трансляторами,  как
           Pascal или FORTRAN.

           _____________________________________________
           - Каждый модуль должен иметь имя.  Если таковое  не
           указано, то транслятор присваивает имя по умолчанию
           (имя файла или нулевое имя).

           -  Каждый  Т-модуль  в  группе модулей должен иметь
           уникальное имя. Для  сборщика Microsoft linker  это
           не обязательно.
           _____________________________________________


     Фрагмент  -

           это   непрерывный   участок   MAS,   длиной    64К,
           начинающийся на границе параграфа (или на селекторе
           80286).  Сегментные регистры процессора  определяют
           только четыре фрагмента (возможно перекрывающихся).
           Ни  один  16-разрядный  адрес  не  имеет  доступа к
           памяти вне четырех текущих фрагменов.

     Логический сегмент (ЛСЕГ) -

           непрерывный   участок   памяти,   чье    содержимое
           определяется  во  время  трансляции (за исключением
           адресной   привязки).   Размер   ЛСЕГ   также    не
           окончателен, т.к. при  сборке несколько ЛСЕГ  могут
           быть объеденены в один ЛСЕГ.  Размер ЛСЕГ не должен
           превышать 64К.  Таким образом, 16-битовое  смещение
           от   базы   фрагмента,   содержащего   ЛСЕГ,  может
           адресовать любой байт в ЛСЕГ.

     Физический сегмент (ФСЕГ) -

           Эквивалент термина "Фрагмент".

     Номер  фрагмента  -

           Каждый  фрагмент  начинается  на границе параграфа.
           Параграфы памяти (16 байт) можно пронумеровать от 0
           до  65535.    Эти   номера  и   являются   номерами
           соответствующих фрагментов.

     Группа  -

           это   несколько   ЛСЕГ,   определенных   во   время
           трансляции, чье положение в MAS скомпоновано  таким
           образом,  что  существует  хотя  бы  один фрагмент,
           перекрывающий  все  ЛСЕГ  в  группе.   Запись   "Гр
           А(X,Y,Z)" означает, что логические сегменты X, Y  и
           Z  формируют  группу  А.  Эта  запись  не  содержит
           никакой   информации   о   взаимном    расположении
           сегментов.   Текущая версия  сборщика Microsoft  не
           допускает  принадлежности  логического  сегмента  к
           более чем одной группе.

     Канонический фрагмент -

           Каждая  ячейка  MAS  содержится  в 4096 фрагментах,
           один  из  которых  имеет  наибольший  номер.   Этот
           фрагмент называется каноническим фрагментом  данной
           ячейки  памяти.    Другими  словами,   каноническим
           фрагментом данной ячейки памяти является  фрагмент,
           смещение от  начала которого  данной ячейки  памяти
           находится в пределах 0-15.  Это понятие применимо и
           группе ячеек, например, канонический фрагмент  ЛСЕГ
           или канонический фрагмент группы ЛСЕГ.

     Имя  сегмента  -

           Каждому ЛСЕГ назначается  имя во время  трансляции.
           Это делается по следующим причинам:

                - необходимо определить во время сборки, какие
                  ЛСЕГ скомбинированы друг с другом;
                - необходимо указать членство в группах.

     Имя класса -

           Во время трансляции логическому сегменту может быть
           назначено имя класса.  Два ЛСЕГ принадлежат  одному
           классу,  если  они  имеют  одинаковые имена класса.
           Имена  класса  имеют  следующий  смысл:  имя класса
           "CODE" или  любое имя  класса с  с таким  суффиксом
           подразумевает,  что   все  сегменты   того   класса
           содержат только код.

     Имя наложения -

           Логическому  сегменту  может  быть  назначено   имя
           наложения.   Это   имя   игнорируется    сборщиками
           Microsoft версий  3.0 и  позже, однако  стандартный
           сборщик Microsoft поддерживает его.

     Полное  имя -

           Полное имя ЛСЕГ включает имя сегмента, имя класса и
           имя   наложения.   Сборщик   соединяет   логические
           сегменты из  различных модулей,  если совпадают  их
           полные имена.


            7.2. Идентификация модуля и атрибуты
                 ННННННННННННННННННННННННННННННН

     Заголовочная  запись модуля содержит имя модуля и всегда
идет первой в модуле. Кроме этого, модуль может  представлять
собой главную программу (main) с указанием стартового адреса.
При  сборке  различных модулей, вы должны указать только один
модуль, имеющий атрибут main. Если таковых  будет  несколько,
то главным будет считаться первый.

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



 
Обучение наращиванию ресниц, курсы. . Окна schuco из Германии. Немецкие окна schuco.