1. Състав на файл EXE
Файл EXE, която изгражда свръзката се състои от две части:
- контролира информация за зареждането на системата.
- действителния модул за зареждане.
Информация за товарача, описани по-долу, се намира в началото на файла и образува т.нар хедър. Веднага последвано от тялото на натоварване модул. натоварване модул тялото започва на границата на блока и е копие на изображението памет на проблема, която е построена ponovschik МС.
Стандартна част от заглавието има следния формат:
00-01 4D5A - "Podpis" оформление, което показва, че файлът е EXE файл.
02-03 Дължина проблем модул изображение 512 (т.е., броят на полезни байта в последния блок).
(Сшиватели версии до 1.10 са били пуснати в кутията 04, и ако има такава стойност, се препоръчва да се игнорира).
04-05 дължина на файла в блокове.
08-09 дължина глава в 16-байтови секции.
Той се използва за да се определи началото на тялото на натоварване модул.
0A-0B минимално количество памет, която трябва да бъде възстановена след края на проблеми с имиджа.
(В 16 байт раздели).
0C-0D Максималният размер на паметта, която трябва да бъде възстановена след края на проблеми с имиджа.
(В 16 байт раздели).
10-11 SP стойност при влизане на задачата.
12-13 контролна - нула минус резултат от добавянето без да носи всички Word файлове.
14-15 Цена IP (брояч на инструкциите) на входа на задачата.
1А-1В брой на припокриване сегмент.
(0 за програмата корен сегмент).
Настройката се извършва, както следва:
1. част памет местно след извършване обувка програма построен префикс Софтуер сегмент.
2. стандартна част от заглавието се прочита в паметта.
Този сегмент се нарича първичен сегмент.
4. Модулът за натоварване се чете в първоначалния сегмент.
5. порции настройка маса се четат в работната памет.
2.Struktura софтуер сегмент
В офсет 0000 в DOS програма сегмент префикс форми на сегмента на софтуер (PSP). В програмата се е зареден с отместване 0100.
Когато заредена програмата получава контрол, да се появят следните условия:
За всички програми:
Общата дължина на средните линии <= 32K байт; среда начинается с границы параграфа. После последней строки следует нулевой байт. Среда, передаваемая задаче от COMMAND, содержит, как минимум, параметр COMSPEC= (значение этого параметра - полное имя файла, содержащего используемый COMMAND.COM). Она также содержит значения, установленные командами PATH, PROMPT и SET (См. Главу 10). Передаваемая среда является копией среды родительского процесса. Если задача остается резидентом, то последующие команды PATH, PROMPT и SET не будут воздействовать на ее среду.
- контрол на файла блокове са разположени в 5С премествания и 6C в префикс програма сегмент попълнено в съответствие с параметрите на командния ред. В този случай, ако съответната опция включва име на директория в FCB влезе само идентификационен номер на устройството, името на файла се формира неправилно.
- Неформатиран част, като се започне офсет 81, съдържа командния ред след героите името команда, включително всички заготовки и разделени. В офсет 80 е поставен дължина от тази линия. Ако командния ред включва опции за пренасочване (върху тях посочват символите> и <) они не попадают сюда, так как переназначение прозрачно для программ.
- Думата при офсетов 6 се състои от няколко байта в сегмента.
- AX регистър показва, че сте въвели правилно имена на устройства в параметрите:
AL = FF - името на устройството на първия параметър е невалидна, в противен случай ПВК = 00;
AH = FF - името на устройството на първия параметър е невалидна, в противен случай AH = 00.
.EXE за програми:
- DS и ES посочено в началото на префикс на програмата сегмент.
- Регистри CS, IP, SS, и SP получават стойностите, означени от линкера.
За програми .COM:
- Всичките четири сегмента регистри сочат към префикса на сегмента на софтуер.
- Програма, всички свободна памет се разпределя. Ако програмата работи други програми Exec работа, той трябва да се освободи операция Setblock памет част (4А) за него
- IP програмен брояч, е настроен да 0100H.
- SP регистър показва края на сегмента на програмата. Сегмент префикс дължина 6 клетъчна намалява при 0100H, за да освободите място за една купчина от такъв размер.
- В горната част на комина пречи на нула дума префикс програма сегмент формат е както следва (всички номера
шестнадесетичен):
Литература:
Референтен PC 1. Йордания програмиста
PC архитектура 2. Norton на IBM
3. Обратно Въведение в програмирането
Свързани статии