| |
BIGLIB |
| большущая библиотека (9812 книг), можно не только прочитать но и скачать бесплатно |
|
| |
ФАНТАСТИКА |
| фентези,
фантастика, фантастические повести |
|
| |
ФИЛОСОФИЯ |
книги, которые заставляют
задуматься над окружающим тебя миром.
|
|
| |
МЕДИЦИНА |
медицинские книги,
методички,
народные лечебники |
|
| |
КУЛИНАРИЯ |
рецепты
тортов, консервирование,
все о спиртных
напитках. |
|
| |
СТИХИ |
| стихи популярных
и не очень авторов |
|
| |
ТВОРЧЕСТВО |
| народное творчество,
стихи, песни и т.д. |
|
| |
ЮМОР |
| анекдоты, приколы,
смешные истории |
|
| |
ЭРОТИКА |
| эротические рассказы,
книги о технике секса,
кама-сутра и др. |
|
|
| |
 |
ЪДДДДДВДДДДДДДДДДДВДДД///ДДДДДВДДДДііііДДДДВДДДДДї
і rec і record і name і number і chk і
і typ і length і і і sum і
і xxH і і і і і
АДДДДДБДДДДДДДДДДДЕДДД///ДДДДДЕДДДДііііДДДДБДДДДДЩ
АДДДДrptДДДДЩ
а) Название и официальная аббревиатура
Для упрощения унификации различных программ, включая
трансляторы и отладчики, используйте официальную
аббревиатуру как в коде, так и в документации. Ее
длина всегда шесть букв.
б) Блоки
Каждый формат изображен в виде блоков двух размеров.
Узкий блок представляет один байт. Простой широкий
блок представляет два байта. Если сверху и снизу
широкого блока помещены три наклонные черты, то
размер блока зависит от его содержимого и может быть
равен одному или более байтам. Широкий блок с
четыремя вертикальными чертами сверху и снизу
представляет четыре байта.
в) rectyp
Первый байт каждой записи содержит значение от нуля до
255, указывающее тип записи.
г) record length
Второе поле в каждой записи содержит количество байт в
записи, исключая первые два поля и представляет собой
16-битное число (младший байт идет первым).
д) name
Это поле содержит имя. Любое поле, содержащее имя,
имеет следующую структуру: первый байт содержит число
от 0 до 127 включительно и указывает число байт в
поле, не считая байт длины.
е) number
Четырехбайтное поле номера содержит 32-битное
беззнаковое целое.
ж) rpt или cond
Если участок формата помечен снизу скобкой и подписью
rpt, то это означает, что помеченный участок может
повторяться.
Если участок формата помечен снизу скобкой и подписью
cond, то это означает, что наличие помеченного участка
зависит от истинности некоторого условия.
з) chksum
Последним полем в каждой записи является поле chksum,
содержащее дополнение до двух суммы (по модулю 256)
всех остальных байт в записи.
и) поля бит
Содержание некоторых полей может описываться на уровне
бит. Например, следующий байт имеет три поля бит,
длиною, соответственно 3, 1 и 4 бита:
ЪДДДДДДДДДВДДДДВДДДДДДДДДДДДДДДї
і і і і
АДДДДДДДДДБДДДДБДДДДДДДДДДДДДДДЩ
3 1 4
7.5.2. Заголовочная запись Т-модуля (THEADR)
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
ЪДДДДДВДДДДДДДДДДДВДДД///ДДДДДВДДДДДї
і rec і record і T-module і chk і
і typ і length і name і sum і
і 80H і і і і
АДДДДДБДДДДДДДДДДДБДДД///ДДДДДБДДДДДЩ
Поле T-module name содержит имя Т-модуля.
7.5.3. Заголовочная запись L-модуля (LHEADR)
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
ЪДДДДДВДДДДДДДДДДДВДДД///ДДДДДВДДДДДї
і rec і record і L-module і chk і
і typ і length і name і sum і
і 82H і і і і
АДДДДДБДДДДДДДДДДДБДДД///ДДДДДБДДДДДЩ
L-module name содержит имя L-модуля.
Каждый модуль должен иметь заголовочную запись THEADR
или LHEADR. Эта запись всегда идет первой в модуле.
Любые другие записи будут проигнорированы сборщиком.
LHEADR идентична THEADR, за исключением лишь rectyp,
равного 82Н.
7.5.4. Запись списка имен (LNAMES)
ДДДДДДДДДДДДДДДДДДДДДДДДДДД
ЪДДДДДВДДДДДДДДДДДВДДД///ДДДДДВДДДДДї
і rec і record і і chk і
і typ і length і name і sum і
і 96H і і і і
АДДДДДБДДДДДДДДДДДЕДДД///ДДДДДЕДДДДДЩ
АДДДrptДДДДДЩ
Запись LNAMES содержит список имен, которые последующие
записи SEGDEF и GRPDEF могут использовать в качестве имен
сегментов, классов и/или групп.
Порядок записей LNAMES в модуле и порядок имен в записи
LNAMES составлен так, что каждое имя имеет свой номер
(1, 2, 3 и т.д.), используемый в качестве индекса имени в
полях Group name index, Class name index и Segment name
index записей SEGDEF и GRPDEF.
Имя, указываемое в поле name, может иметь и нулевую длину.
7.5.5. Запись определения сегмента (SEGDEF)
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
ЪДДДВДДДДДДДДВДДД///ДДВДДДДДДДДВДД///ДДДВДД///ДДВДД///ДДВДДДї
іrecі record і segmentі segmentі segmentі class іoverlayіchkі
іtypі length і attr і length і name і name іname іsumі
і98Hі і і і index і index іindex і і
АДДДБДДДДДДДДБДДД///ДДБДДДДДДДДБДД///ДДДБДД///ДДБДД///ДДБДДДЩ
Индекс сегмента может принимать значения от 1 до 32767 и
используется в других записях для ссылки на определенный ЛСЕГ.
Нумерация индексов определяется последовательностью появления
в объектном файле записей SEGDEF.
а) segment attr
Это поле содержит информацию о различных атрибутах
сегмента и имеет следующий формат:
ЪДДДДВДДДДДДДДВДДДДДДДДї
іacbpі frame і offset і
і і number і і
АДДДДЕДДДДДДДДБДДДДДДДДґ
АДДДДДДДcondДДДДДДЩ
- Байт ACBP имеет следующий формат:
ЪДДДДДДДВДДДДДДДВДДДВДДДї
і a і c і b і p і
АДДДДДДДБДДДДДДДБДДДБДДДЩ
3 3 1 1
Битовое поле А (выравнивание) указывает атрибут
выравнивания ЛСЕГ:
А=0 - SEGDEF описывает абсолютный ЛСЕГ
A=1 - SEGDEF описывает перемещаемый ЛСЕГ,
выравненный на границу байта.
A=2 - SEGDEF описывает перемещаемый ЛСЕГ,
выравненный на границу слова.
A=3 - SEGDEF описывает перемещаемый ЛСЕГ,
выравненный на границу параграфа.
A=4 - SEGDEF описывает перемещаемый ЛСЕГ,
выравненный на границу страницы (256 байт).
Если А=0, то поля Frame number (номер фрагмента) и
offset (смещение) присутствуют. Сборщик Microsoft
linker поддерживает использование абсолютных
сегментов только для адресации, например, для
определения стартового адреса ПЗУ и определения
символических имен вместо адресов ПЗУ. Сборщик
игнорирует любые данные, принадлежащие абсолютному
сегменту, и выводит предупреждение, если абсолютные
сегменты определены для программ, запускаемых в
защищенном режиме.
Битовое поле С (сочетание) определяет атрибут
сочетания ЛСЕГ. Для абсолютных сегментов С равно
нулю. Для перемещаемых сегментов, поле С кодирует
способ сочетания сегментов (0,1,2,3,4,5,6 и 7). Для
интерпретации этого атрибута необходимо
предварительно рассмотреть принципы сочетания
логических сегментов. Допустим, например, что X и Y
это логические сегменты, а Z это логический
сегмент, получаемый в результате комбинации X и Y.
Пусть LX и LY это длины соответственно Х и Y, a MXY
это их общая длина. Пусть G это промежуток между Х
и Y (определяется атрибутом выравнивания), а LZ это
длина Z (сумма LХ, LY и промежутка между ними).
Пусть теперь dx (0
|
adfun.ru
|
|
|
|