Графические устройства

         

Упрощение подпрограмм



Упрощение подпрограмм

Во всех режимах PPG при выбранном нами размере и расположении информационная строка полностью помещается в последнем окне видеопамяти. Поэтому в цикле пересылки проверять значение текущего адреса видеопамяти не имеет смысла. В примерах 5.21 и 5.22 циклы пересылки состоят из пяти команд и имеют метки savip и oeiip. Все пять команд надо исключить из текста примеров, а вместо них записать одну команду, одинаковую в обоих случаях:

rep movs dword ptr [di],fs: [si]/цикл пересылки для примеров 5.21, 5.22.

Кроме этого, из списка параметров макровызовов PushReg и PopReg надо исключить имя переменной cur_win и удалить команду-call setwin перед ret.

Упрощенный вариант подпрограмм можно использовать, только если информационная строка полностью расположена в одном окне. Кроме рассмотренного нами случая, это условие выполняется, если строка расположена вверху рабочей области экрана (коды ее точек расположены в нулевом окне видеопамяти).

Вывод информационной строки. Мы описали сопутствующие действия и можем, наконец, рассмотреть конкретную подпрограмму для вывода строки на экран. Ее текст приведен в примере 5.23. Перед обращением адрес начала строки помещается в регистр si, предполагается, что строка расположена в разделе данных задачи. Признаком конца строки является пустой байт, т. е. строка подготавливается в формате ASCIIZ.



Содержание раздела