мета-данные страницы
  •  
Загрузка не удалась. Возможно, проблемы с правами доступа?

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
asm:second2 [17/02/2011 16:45] arabusovasm:second2 [10/03/2011 21:53] (текущий) arabusov
Строка 1: Строка 1:
 ===== Вывод на экран ===== ===== Вывод на экран =====
 +[[http://www.wasm.ru/article.php?article=lfbdos|Работа с LFB в DOS /05.10.2006/]] - хорошая статья о программировании в SVGA режимах (позволяет использовать режимы до 1600x1200x16 бит)
 +
 ==== Режимы адаптеров ====  ==== Режимы адаптеров ==== 
 ((устарели, но до сих пор поддерживаются)) ((устарели, но до сих пор поддерживаются))
Строка 25: Строка 27:
 | 13h   | 320x240    | 256               | Graph| | 13h   | 320x240    | 256               | Graph|
 ==== Функции BIOS для работы с текстовым режимом ==== ==== Функции BIOS для работы с текстовым режимом ====
 +=== Установка режима ===
 +<code asm>mov ah,00h
 +mov al,номер режима
 +int 10h
 +</code>
 +=== Получение режима ===
 +<code asm>mov ah,0fh
 +int 10h
 +</code>
 +При возврате:
 +<code asm>ah=число столбцов символов на экране
 +al=режим
 +bh=активная страница
 +</code>
 +=== Установка позиции курсора ===
 +<code asm>mov ah,02h
 +mov bh,страница
 +mov dh,y-координата
 +mov dl,x-координата
 +int 10h
 +</code>
 +// Примечания //
 +
 +(0,0) - верхний левый край экрана
 +=== Запись символа и атрибута в позицию курсора ===
 +<code asm>mov ah,09h
 +mov al,символ
 +mov bh,страница
 +mov bl,атрибут
 +mov cx,число повторений
 +int 10h
 +</code>
 +// Примечания //
 +
 +  * В //al// специальные символы не распознаются
 +  * Переноса курсора не происходит
 +=== Рисование пикселя ===
 +<code asm>mov ah,0ch
 +mov al,цвет
 +mov bh,страница
 +mov cx,x-координата
 +mov dx,y-координата
 +int 10h
 +</code>
 +
 +=== Запись символа в режиме телетайпа ===
 +<code asm>mov ah,0eh
 +mov al,символ
 +mov bh,страница
 +mov bl,цвет (в графических режимах)
 +int 10h
 +</code>
 +=== Запись строки в режиме телетайпа ===
 +<code asm>mov ax,seg буфер строки
 +mov es,ax
 +mov bp,offset буфера строки
 +mov ah,13h
 +mov al,режим записи
 +mov bh,страница
 +mov bl,атрибут, если al = 01 или 00
 +mov cx,длина строки
 +mov dh,y-координата
 +mov dl,x-координата
 +int 10h
 +</code>
 +
 +==== Задание ====
 +Написать функцию сохранения и установки режима терминала, функцию вывода строки на экран. Объединить с программой на Си