Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Организация памяти в графическом режиме 12hСодержание книги
Похожие статьи вашей тематики
Поиск на нашем сайте
Видеопамять в графическом режиме 12h организована следующим образом: –начало видеобуфера находится по адресу 0A0000h. –память организована в виде битовых матриц.
В режиме 12h этих матриц четыре. Каждому пикселю экрана соответствует один бит каждой из битовых матриц. Таким образом каждой адресуемой ячейке видеопамяти - байту - соответствует восемь пикселей. Значение цвета пикселя получается как результат объединения значений соответствующего ему бита всех битовых матриц. Режим 12h имеет разрешающую способность - 640х480 пикселов. В видеопамяти задействованы все четыре цветовых слоя. Структура видеопамяти показана на рисунке 3.
Рис. 3. Структура видеопамяти режима 12h.
Формулы, используемые для вычисления битов, управляющих данным пикселом экрана, соответствуют формулам режима 10h. Графический режим 13h Графический режим 13h (320*200 пикселей, 256 цветов) представляется значительно более простым для программирования. Видеобуфер в этом режиме располагается также по адресу 0A0000h, однако каждому экранному пикселю соответствует один байт видеобуфера. Иными словами, запись в видеопамять байта означает установку цвета (в диапазоне 0..255) экранного пикселя. Так как байты-пиксели располагаются в памяти последовательно, непосредственно один за другим, вычисление адреса пикселя в памяти по заданным координатам полностью эквивалентно вычислению адреса символа в текстовом режиме. Этот режим (12h), поддерживается только VGA. Он обеспечивает 256 цветов при разрешающей способности 320х200 пикселов. Структура видеопамяти приведена на рис. 4. Как видно из рисунка, в данном случае видеопамять организована линейно. Каждый пиксел определяется одним байтом. Рис. 4. Структура видеопамяти в режиме 13h.
Следующая формула позволяет определить смещение от начала видеопамяти байта, управляющего пикселом с координатами (x,y): Смещение байта = 140h*y+x
masm model small .stack 100h .data array dw 15 dup (?) ; 10 2 ; 65 2 ; 5 64 ; 70 1 ; 98 42 A1 dw?;элемент для поиска failed db 0ah,0dh,'Net takogo elementa v massive!','$' success db 0ah,0dh,'Takou element v massive prisutstvyet ','$' foundtime db 0;количество найденных элементов fnd db " raz(a)",0ah,0dh,'$' mes2 db 13,10,'Vvedite element massiva [','$' mes3 db 'Vvedite element dlya poiska',13,10,'$' mes4 db ']',13,10,'$' mm1 db? mm2 db? mm3 db? .code start: mov ax,@data mov ds,ax mov dx,offset mes3 mov ah,09h;функция Dos вывода сообщения на int 21h xor ax,ax mov ah,1h int 21h sub al,'0' mov al,al
xor ax,ax mov si,0;si=столбцы в матрице mov bx,0;bx=строки в матрице mov cx,5;число для внешнего цикла (по строкам) external:;внешний цикл по строкам push cx;сохранение в стеке счетчика внешнего цикла mov cx,2;число для внутреннего цикла (по столбцам) mov si,0 iternal: mov dx,offset mes2 mov ah,09h;функция Dos вывода сообщения на int 21h xor ax,ax mov ax,bx;выводим на экран номер строки в массиве. Номер ;строки хранится в bx mov dh,3 div dh add al,'0' mov byte ptr [mm1],al mov byte ptr [mm1+1],'$' mov dx,offset mm1 mov ah,09h;функция Dos вывода сообщения на int 21h mov dl,':';ставим двоеточие после номера строки mov byte ptr [mm2],dl mov byte ptr [mm2+1],'$' mov dx,offset mm2 mov ah,09h;функция Dos вывода сообщения на int 21h mov dx,si;после запятой выводим номер столбца, элемент ;которого вводим. Номер столбца хранится в si add dx,'0' mov byte ptr [mm3],dl mov byte ptr [mm3+1],'$' mov dx,offset mm3 mov ah,09h int 21h mov dx,offset mes4 mov ah,09h int 21h xor ax,ax mov ah,1h int 21h sub al,'0' xor dx,dx mov dh,al mov al,array[bx][si] ;сравниваем содержимое текущего элемента в массиве ;с искомым элементом в dh: cmp dh,array[bx][si] jne here; если значение в массиве и значение в dh совпали, то inc foundtime;увеличиваем счетчик совпадений here: inc si;иначе - цикл по строке loop iternal jcxz move_next;просмотрели строку? move_next:;продвижение в матрице pop cx;восстанавливаем CX из стека (5) add bx,3;передвигаемся на следующую строку loop external;цикл (внешний) cmp foundtime,0h;сравнение числа совпавших с 0 ja eql;если больше 0, то переход на метку eql, иначе, если not_equal:;нет элементов, совпавших с искомым mov ah,09h;вывод сообщения на экран mov dx, offset failed int 21h jmp exit;на выход eql:;есть элементы, совпавшие с искомым mov ah,09h;вывод сообщений на экран mov dx,offset success int 21h mov ah,02h mov dl,foundtime add dl,30h int 21h mov ah,09h mov dx,offset fnd int 21h exit:;выход mov ax,4c00h;стандартное завершение программы int 21h
end start
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2016-09-13; просмотров: 564; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.220.226.214 (0.008 с.) |