Ассемблер и программирование для IBM PC



         

ГЛАВА 6. Программы в COM-файлах - часть 4


Несоблюдение хотя бы одного требования COM-формата может послужить причиной неправильной работы программы. Если EXE2BIN обнаруживает oшибку, то выдается сообщение о

Ассемблер для IBM PC. Глава 6 126

невозможности преобразования файла без указания конкретной причины. Необходимо проверить в этом случае директивы SEGMENT, ASSUME и END. Если опущен ORG 100H, то на данные в префиксе программного сегмента будут установлены неправиль ные ссылки с непредсказуемым результатом при выполнении. При выполнении COM-программы под управлением отладчика DEBUG необходимо использовать команду D CS:100 для просмотра данных и команд. Не следует выполнять в отладчике команду RET; предпочтительнее использовать команду Q отладчика. Некоторые программисты используют INT 20H вместо команды RET. Попытка выполнить EXE-модуль программы, написанной для COM-формата, не имеет успеха.

ОСНОВНЫЕ ПОЛОЖЕНИЯ НА ПАМЯТЬ ------------------------------------------------------------

ъ Объем COM-файла ограничен 64К.

ъ COM-файл меньше, чем соответствующий EXE-файл.

ъ Программа, написанная для выполнения в COM-формате не содержит стека и сегмента данных и не требует инициали зации регистра DS.

ъ Программа, написанная для выполнения в COM-формате использует директиву ORG 100H после директивы SEGMENT для выполнения с адреса после префикса программного сегмента.

ъ Программа EXE2BIN преобразует EXE-файл в COM-файл, обусловленный указанием типа COM во втором операнде.

ъ Операционная система DOS определяет стек для COM-прог раммы или в конце программы, если позволяет размер, или в конце памяти.

ВОПРОСЫ ДЛЯ САМОПРОВЕРКИ ------------------------------------------------------------

6.1. Каков максимальный размер COM-файла?

6.2. Какие сегменты можно определить в программе, которая будет преобразована в COM-файл?

6.3. Как обходится COM-файл при выполнении с фактом отсут ствия определения стека?

6.4. Программа в результате компановки получала имя SAMPLE.EXE. Напишите команду DOS для преобразования ее в COM-файл.

Ассемблер для IBM PC. Глава 6 127

6.5. Измените программу из вопроса 4.6 для COM-формата, обра ботайте ее и выполните под управлением отладчика DEBUG.

Ассемблер для IBM PC. Глава 7 132




    Содержание  Назад  Вперед