Навигация сайта

  • Главная
  • Статьи
  • Учебники
  • Программы
  • Друзья сайта

Программирование графики 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


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

 

Техническая поддержка и аудит сайта.

    • Ремонт частотных преобразователей
    • частоты. Ремонт электроники на компонентном уровне
    • rivers-group.ru