Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые обзорные » Розробка програми для перегляду bmp файлів

Реферат Розробка програми для перегляду bmp файлів





го пікселя - нулевойCurY; CurY - вказує наступний рядок: dx; відновимо d xendp

; ф-ія для установки режиму відео і квітів палітри.procah, 0Fh; ф-ія BIOS для отримання номера поточного відеорежіма10hOldScreenMode, al; сохранітьah, ah; ah = 0 - ф-ія для встановлення графічного режімаal , 13h; al = 13h установка режиму 320x200 c 256 цветамі10h; встановлюємо графічний режим за допомогою переривання BIOSdx, 3c8h; порт відео палітри (3C8h) al, 0; встановити індекс палітриdx, al

; Встановити колір фону в чорний

; (0,0,0) - чернийdx, 3c9h; порт 3C9hal, 0; краснийdx, alal, 0; зеленийdx, alal, 0; сінійdx, aldx, 3c8h; порт відео палітри (3C8h) al, 1; встановити індекс палітри 1dx, al

; зробимо білий колір (63, 63, 63) dx, 3c9h; порт запису 3C9hal, 63; краснийdx, alal, 63; зеленийdx, alal, 63; сінійdx, alendp

; процедура для обробки блоку растра

; вхід: в регістрі ax - розмір даних у блоці

; за адресою Rastr розташовується бітовий масив растраproc

; збережемо значення регістрів в стеку, щоб нічого не попортітьaxbxcxdxsi, Rastr; si вказує на нульовий байт в масиві растраcx, ax; тепер в cx кол-во байтів растра в даному блоці

; циклічна обробка кожного байта растра в блоці: cx; зберігаємо кількість ітерацій в стекеdl, [si]; копіюємо поточний байт в регістр dlDrawByte; викликаємо ф-ію відтворення байта растраsi; переходимо до наступного байтуcx; відновлюємо значення лічильника ітераційBCycle; виконуємо цикл, поки не опрацюємо всі байти

; відновимо регістриdxcxbxaxendp

; процедура для відтворення пікселів, записаних в одному байті

; вхід: dl - байт для отрісовкіprocbl, 10000000b; в bl - маска для вибірки першого зліва бітаcx, 8; кількість ітерацій = кількості біт в байті

; будемо зрушувати маску вправо і виокремлювати значення бітів за допомогою логічного І: cx; збережемо значення лічильника ітераційdl, bl; логічне І між нашим байтом і маскою. результат - зміна флаговWhite; якщо біт = 1, то колір пікселя белийal, 0; якщо ні, то чернийSkipColor; пропускаємо установку кольору в білий: al, 1; al = 1. 1 - індекс палітри для білого кольору (див. SetDisplay): DrawPixel; малюємо даний піксель на екранеbl, 1; зсуваємо маску вправоcx; відновити лічильник ціклаShrCycle; виконуємо алгоритм для кожного бітаendp

; ф-ія для обчислення кількості ігнорованих бітів в рядку растра. (Вони додаються для вирівнювання рядка по параграф)

; вхід: -

; вихід: IgnoredBitsproc

; збережемо всяк випадок значення регістрів в стекaxcxdxbxax, word ptr [biWidth]; в ax - ширина ізображеніяbl, 32; будемо ділити на 32. Звідки 32? (BiWidth/8)/4 == biWidth/32. Ненульовий залишок від ділення ...


Назад | сторінка 11 з 13 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Значення Порт-Артура в російсько-японській війні
  • Реферат на тему: Навігаційний проект переходу судна типу "Сормовський" за маршруто ...
  • Реферат на тему: Навігаційний проект переходу судна типу "Дніпро" за маршрутом пор ...
  • Реферат на тему: Навігаційний проект переходу судна типу "Волго-Балт" за маршрутом ...
  • Реферат на тему: Програма, призначена для відтворення відео файлів