Assembler для начинающих



         

Файлы .com и .exe - часть 4


    счастью, следующая последовательность команд позволяет в
    программном файле типа .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.



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