к PSP ячейке со смещением
счастью, следующая последовательность команд позволяет в
программном файле типа .EXE передать управление обратно DOS.
PROGRAM PROG FAR
PUSH DS ; запись сегмента с PSP
MOV AX,0
PUSH AX ; запись в стек смещения 0
...
RET
PROGRAM ENDP
В относящейся к PSP ячейке со смещением 0 содержится команда
INT 20H. Запись в стек состояния регистра DS и нуля устанавливает
значение адреса длинного возврата, равное адресу PSP со смещением
0. Выполнив команду возврата, программа перейдет к команде INT 20H.
Но к этому моменту в регистре CS уже будет храниться значение PSP,
и команда прерывания INT 20H возвратит управление DOS.
Для прерывания 27H, при котором завершается работа программы и
управление передается DOS с сохранением программы в памяти,
аналогичного способа реализации нет. Хотя имеются методы записи в
регистр CS правильного значения перед прерыванием 27H, обычно более
простым является организация программы в виде файла типа .COM.
И наконец, файл типа .COM занимает на диске меньше места, чес
файл типа .EXE с такой же как в файле типа .COM программой. Так как
у файла типа .COM отсутствует заголовок, то и места для него на
диске не требуется. При рассмотрении в следующем разделе программы
DEBUG будет изложен метод, позволяющий преобразовывать файл типа
.EXE в файл типа .COM.
Содержание Назад Вперед