Иллюстрированный самоучитель по задачам и примерам Assembler

Функции BIOS для работы с экраном

Перемещение в окне вверх (06h int 10h)

Функция 06h позволяет определить на экране окно, в котором возможно прокрутить определенное количество строк вверх. При такой прокрутке верхние строки исчезают и снизу добавляются пустые строки.

Вход: АН = 06h – перемещение строк в окне вверх;

  • AL = число строк для заполнения снизу;
  • ВН = атрибут символов (цвет) в строке для заполнения;
  • СН и CL = строка и столбец верхнего левого угла окна;
  • DH и DL = строка и столбец нижнего правого угла окна.

Строки для заполнения снизу имеют цвет, определенный в ВН. Если указать AL=0, то окно очистится и заполнится строками с цветом, заданным байтом-атрибутом в ВН.

Ниже приведена программа вывода нескольких строк на экран, после чего она определяет окно на экране и прокручивает его на несколько строк вверх.

:prg05_05.asm – программа для работы с окном на экране.
.data
String db "dfsh3453637869uioraepBBanB"
Ien_str1ng >>$-string
adr_stringdd string
 .code
……….
movcx,25 ml: mov al,1:после вывода – курсор в конец строки
xorbh.bh:номер видеостраницы
movbl.7: атрибут push ex
mov cx,len_string:длина выводимой строки
les bp.adr_string:адрес строки в пару ES:BP
mov ah,l3h
int l0h
incdh;строка начала вывода
incdl: столбец начала вывода pop ex
loop ml:. определяем и прокручиваем окно вверх
mov al.4:4 строки
mov bh. 0
mov ch, 5
mov cl.5 .mov dh. 10
mov dl.30
mov ah.06h
int 10h

Заметьте, что функция 06h достаточно гибко работает с курсором.

Перемещение в окне вниз (07h int 10h)

Функция 07h позволяет определить на экране окно, в котором возможно прокрутить определенное количество строк вниз. При такой прокрутке нижние строки исчезают и сверху добавляются пустые строки.

Вход: АН = 07h – перемещение строк в окне вниз;

  • AL = число строк для заполнения сверху;
  • ВН = атрибут символов (цвет) в строке для заполнения;
  • СН и CL – строка и столбец верхнего левого угла окна;
  • DH и DL = строка и столбец нижнего правого угла окна.

Строки для заполнения сверху имеют цвет, определенный в ВН. Если указать А1_=0, то окно очистится и заполнится строками с цветом, заданным в ВН. Структура байта атрибута аналогична описанной выше.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.