Вход в систему

Лекции по курсу "Проектирование ассемблеров, компоновщиков, макропроцессоров"

17. Структура объектных файлов. Основные понятия

 

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

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

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

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

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


  • Каждый модуль должен иметь имя. Если таковое не указано, то транслятор присваивает имя по умолчанию (имя файла или нулевое имя).
  • Каждый Т-модуль в группе модулей должен иметь уникальное имя. Для сборщика Microsoft linker это не обязательно.

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

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

Физический сегмент (ФСЕГ) - эквивалент термина «фрагмент».

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

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

Канонический фрагмент (применим к некоторой ячейке памяти) - минимальное расстояние до ячейки от начала параграфа.

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

  • необходимо определить о время сборки, какие ЛСЕГ скомбинированы друг с другом;
  • необходимо указать членство в группах.
Введение
Причины использования языка ассемблер
Причины неиспользования языка ассемблер
Синтаксис ассемблера
Системное программное обеспечение и структура ЭВМ
Программная модель процессора Intel 8086
Организация работы памяти
Операнды
Адресация операндов
Формат машинных команд
Команды переходов
Типы ассемблеров. Функции ассемблера
Ассемблер по схеме 1А / ОП
Ассемблер по схеме 1А / МД
Двухпросмотровый ассемблер
Многопросмотровый ассемблер
Загрузчик
Структура объектных файлов. Основные понятия
Идентификация модуля и атрибуты
Концепция привязки
Объектный файл. Последовательность записей
Объектный файл. Формат записей
Формат записей THEADR и LHEADR
Формат записи LNAMES
Формат записи SEGDEF
Формат записи GRPDEF
Формат записи PUBDEF
Формат записи COMDEF
Формат записи LOCSYM
Формат записи EXTDEF
Формат записи LINNUM
Формат записи LEDATA
Формат записи LIDATA
Формат записи FIXUPP
Формат записи MODEND
Формат записи комментариев


исполнялось 0,367043 c, запросов к базе 6