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



Возврат программы в DOS с сохранением ее резидентности - часть 8


    закреплена. DOS изымает эту область из общего объема памяти,
    предоставляемой пользователю. Например, если в системе 96K байт
    памяти, а 10 кбайт отводится под буфер печати, то пользоваться
    Макроассемблером уже не удастся. Для макроассемблера требуется 96
    кбайт, а после создания буфера печати останется лишь 86 кбайт.
    Поэтому, прежде чем организовать буферизацию печати, убедитесь, что
    в системе останется еще достаточный объем памяти.
 
      Буферизация печати осуществляется примерно так. Стандартная
    команда PRINT (INT 17H) заменяется процедурой, которая помещает
    символы в буфер вместо того, чтобы посылать их на принтер. Эта
    часть программы и называется буферизацией печати. Отдельная часть
    программы, называемая выводом на печать, извлекает символы из
    буфера печати и пересылает их на принтер.
 
      Основным моментом в данном примере является замена прерывания
    INT 17H базовой системы ввода-вывода. Почти все прикладные
    программы для вывода на печать используют именно это прерывание, а
    это означает, что теперь все обычные операции печати будут
    приводить к пересылке символов в подпрограмму буферизации печати, а
    не на принтер. В частности, в нашем примере, мы можем
    листинг ассемблирования вывести на принтер, нажав клавиши
    Ctrl-PrtSc, служащие для пересылки символов с экрана на печать.
 
      Когда мы выводим листинг ассемблирования с программой
    буферизации печати в памяти, символы поступают в буфер в памяти, а
    не на принтер. Буферизация очень незначительно
    увеличивает время просмотра. Когда файл выведен на экран (и в буфер
    печати), управление возвращается DOS. Вы можете прекратить
    пересылку символов на принтер, снова нажав клавиши Ctrl-PrtSc.
    Листинговый файл находится в буфере, и DOS готова продолжить
    выполнение других заданий, например, редактирование или
    ассемблирование.
      Затем начинает выполняться вторая часть программы. Эта
    процедура извлекает символы из буфера и пересылает их на принтер.



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