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

         

Вывод текста информационной строки



Пример 5.23. Вывод текста информационной строки

Outlnf: push Cur_win ; сохранение исходного значения Cur_win
mov ax, Inflinw ; ax = номер окна информационной строки
mov Cur_win, ax ; Cur_win = ax
call Savinfo ; сохранение исходного фона
jmp short outstr ; переход на выборку первого символа
outl: call outsgn вывод на экран очередного символа
outstr: lodsb al = К°Д очередного символа (al = ds:si)
or al, al конец выводимого текста ?
jne outl -> нет, переход на метку outl ;
Здесь могут выполняться сопутствующие действия pop Cur_win восстановление исходного значения Cur win
call setwin восстановление исходного окна
ret возврат из подпрограммы

Собственно вывод текста в примере 5.23 выполняется в цикле, состоящем из четырех команд. Первая из них имеет имя outl, но точкой входа является следующая команда, имеющая метку outstr. Код очередного символа строки считывается в регистр al, и если он не равен нулю, то происходит возврат на метку outl для обращения к подпрограмме outsgn (см. пример 5.19). Цикл повторяется, пока в строке не будет обнаружен пустой байт.

При желании вы можете изменить цикл так, чтобы использовался другой признак конца строки или задавалось количество символов в строке. Однако формат ASCIIZ является наиболее удобным.

После цикла вывода текста в примере вставлен комментарий, указывающий на возможность выполнения других действий, например выдержки паузы или ввода ответа оператора с клавиатуры. В разделе мы опишем вставку в это место примера.


Если другие действия не нужны, то восстанавливается исходное значение переменной Cur_win, устанавливается исходное окно и происходит возврат на вызывающую программу. Выведенный текст остается на экране, а сохраненный фон — В буфере GenSeg.

Замечание 2
Замечание 2

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

 


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