|
Этот механизм используется только с программами, вы-
полняемыми под управлением функции 4Bh - функции загрузки и вы-
полнения программы.
Типы кодирования
Для большинства основных программ на любом языке программиро-
вания программист редко интересуется подробностями выполнения
программы процессором. Подробности обработки в/в, управления па-
мятью, размещения программы в памяти при ее выполнении, как пра-
вило, предоставляются для управления операционной системе. |
доктор веб |
|
|
Одна-
ко, имеется ряд моментов, когда требуется более непосредственное
управление программной средой. В эти моменты программисту может
потребоваться знание и готовность принять ответственное решение
по вопросам механизма загрузки, размещения и выполнения програм-
мы. |
архиватор winrar |
|
|
Примерами, когда это требуется, могут служить: написание ав-
тономных программ, функционирующих без присутствия MS-DOS; под-
держка оверлейных (перекрываемых) программ для использования
больших программ в ограниченной физической памяти; и написание
драйверов прерывания или рекурсивных программ.
Во время выполнения программы размещение ее в памяти отража-
ется двумя путями. Во первых, для связи счетчика программы (также
называемого как указатель инструкции) или адреса ссылки памяти с
блоком физической памяти используются регистры сегмента. |
сетевой экран |
|
|
файловый менеджер, nod32, kaspersky, panda activescan, win архиваторы, .
антивирус касперского
|
Иногда после-
дующая информация не требуется. Если требуется дополнительная ин-
формация, то для полного кода полезен выделенный регистр. Логично
выбрать регистр AX, но в связи с тем, что от этого регистра зави-
сит так много других операций (например, MUL - умножение аккуму-
лятора на операнд и DIV - деление аккумулятора на операнд), он
может оказаться недоступным. Какой бы регистр не выбирался, он
должен содержать не только код ошибки, но также и код нормального
завершения. В случае, если первичная информация об ошибке потеря-
на, программа может повторно проверить регистр для получения сос-
тояния завершения. Если информация критическая, выберите значение
для нормального завершения, которое является ненормальным резуль-
татом. Это означает, нельзя использовать значение нуля для нор-
мального завершения, потому что другая ошибка может легко почис-
тить код состояния. MS-DOS обеспечивает обслуживание отчетов об
ошибках для использования с программами, выполняющими другие
программы. Если подпроцесс хочет вернуть код ошибки в процесс,
который вызывал этот подпроцесс, он может поступить так, как
часть функционального вызова процесса завершения - функция 4Сh.
Затем порождающий процесс может получить этот код возврата через
функцию MS-DOS 4Dh. Затем можно получить код возврата порожденно-
го процесса.
|
|
|