Программирование на ассемблере персональных ЭВМ класса IBM/PC-XT в операционной системе MS/DOS. Евсеева О.Н - 29 стр.

UptoLike

- 29 -
2. Перенести вектор прерывания для 16H в 60H.
3. Изменить вектор 16H, чтобы он указывал на новую процедуру.
4. Завершить программу, оставляя ее резидентной.
Управление программами
Большинство программ загружаются в память, запускаются, а
затем удаляются операционной системой при завершении. Языки высо-
кого уровня обычно не имеют альтернативы. Но для программистов на
Ассемблере имеется другая возможность и данный раздел демонстри-
рует ее.
Некоторые программы действуют как драйверы устройств или
драйверы прерываний и они должны быть сохранены в памяти ("рези-
дентными") даже после их завершения (вектора прерываний обеспечи-
вают механизм, посредством котрого последующие программы могут
обращаться к резидентным процедурам).
Иногда, программе необходимо запустить другой загрузочный
модуль. На самом деле DOS позволяет программе загрузить в память
вторую копию COMMAND.COM, которая может быть использована как
средство интерфейса с пользователем или выполнения команд типа
COPY или DIR.
Загружаемые программы могут быть в двух форматах: .EXE или .
COM. Программы первого типа могут быть больше 64К, но они требуют
некоторой обработки перед тем, как DOS загрузит их в память. С
другой стороны COM программы существуют прямо в том формате, ко-
торый нужен для загрузки в память. COM программы особенно полезны
для коротких утилит. В обоих случаях код, составляющий программу,
предваряется в памяти префиксом прграммного сегмента (PSP). Это
область размером 100H байт, которая содержит необходимую DOS для
работы программы информацию; PSP также обеспечивает место для
файловых операций ввода/вывода.
При загрузке EXE файла и DS, и ES указывают на PSP. Для COM
файлов CS также сначала указывает на PSP. MS DOS 3.0 имеет функ-
цию, которая возвря
работы программы информацию; PSP также обеспечивает место для
файловых операций ввода/вывода.
При загрузке EXE файла и DS, и ES указывают на PSP. Для COM
файлов CS также сначала указывает на PSP. MS DOS 3.0 имеет функ-
цию, которая возвращает номер сегмента PSP. Это функция 62H пре-
рывания 21H; ей ничего не надо передавать на входе, а в BX возв-
ращается номер параграфа.
Одна из причин, по которой интересно положение PSP, состоит
в том, что его первое слово содержит номер прерывания DOS, кото-