
ПТСПЦУВСБ / 2. Организация выполняемых программ в MS – DOS. Система команд процессора Intel 86
..docx2. Организация выполняемых программ в MS – DOS. Система команд процессора Intel 86.
-
bat. – текстовый файл (с его помощью можно запускать) – для организации порядка и записи программ 2-х других типов (.com, .exe).
-
.com, .exe – программы, полученные в результате компиляции и компановки.
.com:
-
длина не превышает 64 КБ;
-
рассчитан для работы с малыми моделями памяти (TINY, SMALL);
-
хранится на диске в том виде, в котором исполняется и не требует дополнительной настройки после загрузки;
-
все сегментные регистры в начальный момент времени настроены на один и тот же адрес, с которого начинается PSP этой программы.
Структура .com – файла:
64 КБ PSP всегда занимает 256 байт = 100Н
SP
Код программы
и данные


- заполнение
100Н
CS:IP
PSP


DS,SS,ES,CS
Первично после загрузки все сегментные регистры настроены на PSP. Тогда 1-ая команда в программе начинается с адреса IP=100H; указатель STACK устанавливается на конец сегмента (STACK растет как сосулька).
.exe:
-
используется для моделей памяти SMALL и выше, позволяет применять любое количество сегментов;
-
требует настройку – содержит заголовок при хранении на диске, с помощью которого выполняется настройка при загрузке (настройка заключается в то, что все адреса предварительно корректируются);
Структура .exe – файла: SP
Данные
Список
PSP
Код

SS
PSP (после загрузки)
CS
DS, ES
PSP (Префикс сегмент program) – специальная структура, которая формирует ОС для каждого исполняемого файла. Она содержит с нулевого адреса команду INT20 (прерывание) длиной 1 слово, которая обеспечивает возврат ОС после выполнения программы.
H 1слово INT20 (CD20)
2H 1слово размер доступной памяти (в параграфах)
от 4H до (2C-1) 1слово вспомогательные адреса и команды
2CH среда окружения программ
80H область передачи данных (DTA)
Система команд процессора Intel 86.
Формат:
Префикс |
перераспределение сегмента |
КОП |
режим адресации |
Данные |
Адрес |
0/1 байт |
0/1 байт |
Всегда 1
байт |
0/1 байт |
0/1/2 байт |
0/1/2 байт |
Есть всегда! Взаимоисключаемые
Максимальная длина команды = 6 байт.
Префикс используется для:
-
задания, выполнения, повторения данной команды (обычно для строк);
-
запрещает доступ к … на время выполнения команды (LOCK);
Переопределение сегментов – изменение сегмента, принятого поумолчанию.
Режим адресации – указание: с регистром или с памятью мы будем работать.