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


         

Процедура Бэйсика BLOAD - часть 9


    для программы DEBUG выдача содержимого регистров.
 
      Теперь все готово для выполнения подпрограммы на языке
    ассемблера как части программы на языке Бейсик. Снова предположим,
    что система располагает 128 кбайтами памяти, и выполним следующую
    последовательность действий:
 
      введите "BASIC" на уровне команд DOS;
      введите "SCREEN1" во время работы интерпретатора Бейсика.
 
 
 
            Фиг. 10.7 Печатная копия экрана
 
      Эти действия вводят нас в интерпретатор и переводят режим
    изображения на размер 320*200 точек. На Фиг. 10.7. показаны
    оставшиеся события этой истории. Команда BLOAD загружает процедуру
    в ту же область памяти, из которой она была сохранена. При желании
    в команде BLOAD можно задать параметры, обеспечивающие загрузку
    программы в другую область памяти. Оператор LINE дает процедуре
    графической распечатки экрана информацию для печати. Для вызова
    этой процедуры мы используем команду DEF SEG, чтобы установить
    значение регистра CS на процедуру. Значение регистра IP для
    процедуры помещается в простую переменную. Оператор CALL
    осуществляет дальний вызов по заданному адресу. Фиг. 10.7
    представляет собой копию реальной распечатки, полученной при
    выполнении приведенной программы.
 
      Если в системе 64Кбайт памяти, то программа будет отлична в
    двух аспектах. Для вызова интерпретатора Бейсика используется
    команда BASIC/M:&H8000, резервирующая верхнюю часть памяти для
    нашей ассемблерной процедуры, а команда DEF SEG задает адрес
    подпрограммы, как это было сделано в части (b) Фиг. 10.6.



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