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

Опция /s

Опция /s создает файл карты распределения памяти с сегментами, общи-

ми идентефикаторами и адресом запуска программы, также как и опция /m.

Однако она также создает уточненную карту сегментов. Ниже приведен пример

уточненной карты сегментов.

┌───────────────────────────────────────────────────────────────┐

│ Уточненная карта сегментов │

├──────────┬────┬──────┬────────────┬────────┬────────┬─────────┤

│ │ │ │ │ │ │Выравнива│

│ │Дли-│Класс │ Имя │ Группа │ Модуль │ние/комби│

│ │ на │ │ сегмента │ │ │нирование│

├──────────┼────┼──────┼────────────┼────────┼────────┼─────────┤

│ 0000:0000│0E5B│C=CODE│S=SY_PRO │G=(none)│M=SY.PRO│ ACBP=28 │

│ │ │ │ │ │ │ │

│ 00E5:000B│2735│C=CODE│S=QU_TEXT │G=(none)│M=QU.PRO│ ACBP=28 │

│ │ │ │ │ │ │ │

│ 0359:000B│002B│C=CODE│S=SCOPY_TEXT│G=(none)│M=SCOPY │ ACBP=28 │

│ │ │ │ │ │ │ │

│ 035B:000B│003A│C=CODE│S=LRSH_TEXT │G=(none)│M=LRSH │ ACBP=20 │

│ │ │ │ │ │ │ │

│ 035F:0005│0083│C=CODE│S=PADA_TEXT │G=(none)│M=PADA │ ACBP=20 │

│ │ │ │ │ │ │ │

│ 0367:0008│005B│C=CODE│S=PADD_TEXT │G=(none)│M=PADD │ ACBP=20 │

│ │ │ │ │ │ │ │

│ 036D:0003│0025│C=CODE│S=PSBP_TEXT │G=(none)│M=PSBP │ ACBP=20 │

│ │ │ │ │ │ │ │

│ 036F:0008│05CE│C=CODE│S=BRK_TEXT │G=(none)│M=BRK │ ACBP=28 │

│ │ │ │ │ │ │ │

│ 03CC:0006│066F│C=CODE│S=FLOAT_TEXT│G=(none)│M=FLOAT │ ACBP=20 │

│ │ │ │ │ │ │ │

│ 0433:0006│000B│C=CODE│S=_DATA │G=(none)│M=SY.PRO│ ACBP=48 │

│ │ │ │ │ │ │ │

│ 0433:0012│00D3│C=CODE│S=_DATA │G=(none)│M=QU.PRO│ ACBP=48 │

│ │ │ │ │ │ │ │

│ 0433:00E6│000E│C=CODE│S=_DATA │G=(none)│M=BRK │ ACBP=48 │

│ │ │ │ │ │ │ │

│ 0442:0004│0004│C=CODE│S=_BSS │G=(none)│M=SY.PRO│ ACBP=48 │

│ │ │ │ │ │ │ │

│ 0442:0008│0002│C=CODE│S=_BSS │G=(none)│M=QU.PRO│ ACBP=48 │

│ │ │ │ │ │ │ │

│ 0442:000A│000E│C=CODE│S=_BSS │G=(none)│M=BRK │ ACBP=48 │

│ │ │ │ │ │ │ │

└──────────┴────┴──────┴────────────┴────────┴────────┴─────────┘

Для каждого сегмента в каждом модуле эта карта включает адрес, длину

в байтах, класс, группу, модуль и информацию ACBP.

Если один и тот же сегмент появляется более, чем в одном модуле, то

каждый модуль будет выдаваться в отдельной строке (например, SY.PRO). На-

ибольшая часть информации в уточненной карте сегментов говорит сама за

себя за исключением поля АСВР.

Поля АСВР. Поле АСВР преобразует атрибуты А (выравнивание) и С (ком-

бинирование) в набор четырехбитовых полей, определенных Intel. TLINK ис-

пользует только два поля: А и С. Значение АСВР в карте печатается шест-

надцатиричным. Для получения распечатанного значения АСВР следующие поля

должны быть сложены вместе по правилу логического оператора ИЛИ.

┌─────────────────┬─────┬───────────────────────────────────────┐

│ П о л е │Зна- │ О п и с а н и е │

│ │чение│ │

├─────────────────┼─────┼───────────────────────────────────────┤

│ │ │ │

│ Поле А │ 00 │ Абсолютный сегмент. │

│ │ │ │

│ (выравнивание) │ 20 │ Сегмент, выравненный по байтам. │

│ │ │ │

│ │ 40 │ Сегмент, выравненный по словам. │

│ │ │ │

│ │ 60 │ Сегмент, выравненный по параграфам. │

│ │ │ │

│ │ 80 │ Сегмент, выравненный по страницам. │

│ │ │ │

│ │ А0 │ Неимеющая наименования абсолютная об- │

│ │ │ ласть памяти. │

├─────────────────┼─────┼───────────────────────────────────────┤

│ │ │ │

│ Поле С │ 00 │ Не может комбинироваться │

│ │ │ │

│ (комбинирование)│ 08 │ Общий комбинирующий сегмент │

└─────────────────┴─────┴───────────────────────────────────────┘