[ главная ]   [ рейтинг статей ]   [ справочник радиолюбителя ]   [ новости мира ИТ ]



Ответов: 0
25-02-12 07:01







   Web - программирование
PHP


ASP






XML



CSS

SSI





   Программирование под ОС











   Web - технологии








   Базы Данных









   Графика






Данные




Программирование под ОС / Assembler /

Программирование графики VGA на ассемблере

Цель обучающей программы состоит в том, чтобы преподавать программирование графики VGA в способе VGA, 13-ом (320x200x8 битов). Так теперь я - goin', чтобы объяснить, как переключиться на способ и поместить пиксел в экран.

Так переключение к 13-ому способу столь же просто как что:

mov ax, 13h ; AH=0 (способ видео Изменения), AL=13h (Способ)
int 10h ; Видео перерыв BIOS

Хорошо. Нам переключили способ. Позволяет помещает единственный пиксел в экран:

mov, 0A000h; погашение к видео памяти
mov es, топор; Мы загружаем это к ES через
mov, becouse непосредственная операция не позволен на ES
mov, 0; 0 поместит это в верхний левый угол. Чтобы поместить это в верхний правый угол загружают 320, в середине экрана 32010.
mov di, ax; загрузите регистр Индекса Предназначения ценностью ax (coords, чтобы поместить пиксел)
mov dl, 7; Серый цвет.
mov [es:di], dl; И мы помещаем пиксел


Легкий, но не очень удобный, когда Вы хотите написать coords как (45, 66) или (183, 112). Так теперь позволяет, пишут немного функции, которая помогает нам.

mov ax, 67; Y coord
основной обмен mov, 112; X coord
mov cx, 320
mul cx; умножьте ax на 320 (cx ценность)
добавьте ax, основной обмен; и добавьте X
mov di, ax
mov dl, 7
mov [es:di], dl

Или мы можем написать немного функции:

putpixel:
mov cx, 320
mul cx; умножьте ax на 320 (cx ценность)
добавьте ax, основной обмен; и добавьте X
mov di, ax
mov [es:di], dl

Прежде, чем назвать это мы устанавливаем топор с Y coord, основным обменом с X и dl с цветом.

Чтобы получить пиксел от видео памяти, мы только изменяем последнюю сборочную линию на:

mov dl, [es:di]

Теперь позволяет, задерживает старый способ (обычно 3):

mov ax,3
int 10h


Я надеюсь, что я помог немного.;) . Удачи!



Комментарии

 Ваш комментарий к данному материалу будет интересен нам и нашим читателям!



Последние статьи: Программирование под ОС / Assembler /

Первая программа на linux
23-05-2010   

Ассемблер, который я буду использовать - NASM (Netwide Assembler, nasm.2y.net). Этот выбор объясняется тем, что: Во первых, он мультиплатформенный, т.е. для портирования программы на разные ОС достаточно только изменить код взаимодействия с системой, а всю программу переписывать не нужно... подробнее

Кол. просмотров: общее - 4207 сегодня - 1

Использование пакета NuMega Driver Studio для написания WDM - драйверов устройств
17-05-2010   

Разработка WDM - драйвера с использованием только DDK является сложной и трудоемкой задачей. При этом приходится выполнять много однотипных операций: создание скелета драйвера, написание inf - файла для его установки, создание приложения для тестирования и т.п... подробнее

Кол. просмотров: общее - 4037 сегодня - 1

Система классов DriverWorks
17-05-2010   

Возможно, идея писать драйвера объектно-ориентированными и кажется на первый взгляд нелогичной. Но при более близком знакомстве с DriverStudio и с драйверами в общем, оказывается, что это не так уж страшно и довольно удобно... подробнее

Кол. просмотров: общее - 3901 сегодня - 1

Объект устройства device object
17-05-2010   

Объекты устройств являются экземплярами класса KDevice или KPnpDevice. Эти классы являются краеугольными камнями архитектуры DriverWorks: они представляют собой как бы программный образ тех устройств, которые присутствуют в системе... подробнее

Кол. просмотров: общее - 4027 сегодня - 1

Объекты для управления оборудованием
17-05-2010   

Как было упомянуто выше, объект устройства управляет работой устройства при помощи специальных объектов, управляющих работой оборудования - портами В/В, прерываниями, памятью, контроллерами ПДП. Драйвер создает эти объекты для представления физических параметров устройства... подробнее

Кол. просмотров: общее - 4134 сегодня - 1



  WWW.COMPROG.RU - 2009-2012 | Designed and Powered by Zaipov Renat | Projects