русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Пример программы


Дата добавления: 2013-12-23; просмотров: 858; Нарушение авторских прав


Рисование точки

Графические режимы

Лекция №11. Работа с графикой на ассемблере. Функции BIOS. Видеопамять.

 

Современные видеоконтроллеры поддерживают разнообразные текстовые и графические режимы. Текстовые режимы различаются по разрешению (число отображаемых символов по горизонтали и вертикали) и цветовой палитре (монохромный или 16-цветный режим). Для графических режимов основным признаком классификации является количество одновременно отображаемых цветов и, соответственно, количество бит видеопамяти, отводимое на каждую точку (пиксел) изображения.

Различают следующие типы графических режимов:

– монохромный (1-битное кодирование);

– 16-цветный EGA/VGA (4-битное кодирование);

– 256-цветный SVGA (8-битное кодирование);

– HiColor (16-битное кодирование);

– TrueColor (24-битное / 32-битное кодирование).

 


Для работы с графическим адаптером, в BIOS используется прерывание INT 10h. Оно позволяет устанавливать графические режимы работы, выводить символы и графику. Выбор графического режима – Функция 0 (ah=0) прерывания INT 10h устанавливает видеорежим, который был указан в регистре AL.

Режим Разрешение Количествоцветов
06h 640x200
0Dh 320x200
0Eh 640x200
0Fh 640x350
10h 640x350
11h 640x480
12h 640x480
13h 320x200
6Ah * 800x600

Режим 6Ah утвержден VESA, но его поддерживают не все видео адаптеры

Существуют также дополнительные режимы, которые используются для SVGA и XGA адаптеров. Они устанавливаются вызовом VESA BIOS Extension (AX=4F02h INT 10h).


Функция 0Chпрерывания INT 10h.

Цвет – в AL;

Видеостраница – в BH;

КоординатаY – в DX;

КоординатаX – в CX.



 

Пример: нарисовать точку с цветом 1, с координатами X=50 и Y=20.

movah,0Ch ; функция рисования точкиmoval,1 ; цвет точкиmovbh,0 ; видео страницаmovcx,50 ; координата Xmovdx,20 ; координата Yint10h ; вызов прерывания BIOS

Функция 0Ch исполняется очень медленно, особенно при рисовании множества точек. Настоящие графические программы (такие как игры) записывают непосредственно в видеопамять, после того, как они рассчитали цвет и расположение точки.


Эта программа переключается в графический режим, рисует длинную линию, используя функцию 0Сh, затем ожидает нажатия клавиши и возвращается в прежний режим.

.model small .stack 100h .386Mode_6 = 6 ; 640 X 200, 2 colors Mode_13 = 0Dh ; 320 X 200, 16 colors Mode_14 = 0Eh ; 640 X 200, 16 colors Mode_15 = 0Fh ; 640 X 350, 2 colors Mode_16 = 10h ; 640 X 350, 16 colors Mode_17 = 11h ; 640 X 480, 2 colors Mode_18 = 12h ; 640 X 480, 16 colors Mode_19 = 13h ; 320 X 200, 256 colors Mode_6A = 6Ah ; 800 X 600, 16 colors .datasaveMode db ; Сохранить текущий видео режимcurrentX dw 100 ; координата XcurrentY dw 100 ; координата Ycolor db 1 ; номер цвета ; В 2 цветном режиме 1 = белый, в 16 цветном 1 = синий .code start:mov ax,@data mov ds,ax ; Получить текущий видеорежимmov ah,0Fhint 10hmov saveMode,al ; Переключиться в графический режимmov ah,0 ; установка видеорежимаmov al,Mode_17 ; номер режимаint 10h ; Рисование прямой линииLineLength = 100mov dx,currentYmov cx,LineLength ; счетчик цикла L1:push cxmov ah,0Ch ; рисование точкиmov al,color ; цвет точкиmov bh,0 ; видео страницаmov cx,currentXint 10hinc currentX;inc color ; используйте для разноцветной линииpop cxloop L1 ; Ожидаем нажатия клавишиmov ah,0int 16h ; Возврат в прежний видеорежимmov ah,0 ; установить видео режим mov al,saveMode ; сохраненный видео режимint 10h ; Выход из программыmov ax,4C00hint 21hend start

 




<== предыдущая лекция | следующая лекция ==>
В Win32 получить время создания, время последнего доступа и время последней модификации файла можно с помощью функции GetFileTime. | Основные графические режимы VGA


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.004 сек.