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


          

Несоблюдение хотя бы одного требования


Несоблюдение хотя бы одного требования 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


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