Страница 1 из 1

Создание палитры

Добавлено: 29 май 2007, 23:20
Jery_Myau
Народ, помогите плиз. Надо курсач по асму сдавать. Программирование графического режима. Нашла готовый. Не могу разобрать, что делает одна процедура. Помогите плиз!!!

Paleta LABEL BYTE ;это в сегменте кода. забивание палитры цветов как я понимаю
DB 0,0,0, 0,0,6, 0,0,6, 0,0,7, 0,0,8, 0,0,8, 0,0,9, 0,0,10, 2,0,10
DB 4,0,9, 6,0,9, 8,0,8, 10,0,7, 12,0,7, 14,0,6, 16,0,5, 18,0,5
DB 20,0,4, 22,0,4, 24,0,3, 26,0,2, 28,0,2, 30,0,1, 32,0,0, 32,0,0
DB 33,0,0, 34,0,0, 35,0,0, 36,0,0, 36,0,0, 37,0,0, 38,0,0, 39,0,0
DB 40,0,0, 40,0,0, 41,0,0, 42,0,0, 43,0,0, 44,0,0, 45,0,0, 46,1,0
DB 47,1,0, 48,2,0, 49,2,0, 50,3,0, 51,3,0, 52,4,0, 53,4,0, 54,5,0
DB 55,5,0, 56,6,0, 57,6,0, 58,7,0, 59,7,0, 60,8,0, 61,8,0, 63,9,0
DB 63,9,0, 63,10,0, 63,10,0, 63,11,0, 63,11,0, 63,12,0, 63,12,0, 63,13,0
DB 63,13,0, 63,14,0, 63,14,0, 63,15,0, 63,15,0, 63,16,0, 63,16,0, 63,17,0
DB 63,17,0, 63,18,0, 63,18,0, 63,19,0, 63,19,0, 63,20,0, 63,20,0, 63,21,0
DB 63,21,0, 63,22,0, 63,22,0, 63,23,0, 63,24,0, 63,24,0, 63,25,0, 63,25,0
DB 63,26,0, 63,26,0, 63,27,0, 63,27,0, 63,28,0, 63,28,0, 63,29,0, 63,29,0
DB 63,30,0, 63,30,0, 63,31,0, 63,31,0, 63,32,0, 63,32,0, 63,33,0, 63,33,0
DB 63,34,0, 63,34,0, 63,35,0, 63,35,0, 63,36,0, 63,36,0, 63,37,0, 63,38,0
DB 63,38,0, 63,39,0, 63,39,0, 63,40,0, 63,40,0, 63,41,0, 63,41,0, 63,42,0
DB 63,42,0, 63,43,0, 63,43,0, 63,44,0, 63,44,0, 63,45,0, 63,45,0, 63,46,0
DB 63,46,0, 63,47,0, 63,47,0, 63,48,0, 63,48,0, 63,49,0, 63,49,0, 63,50,0
DB 63,50,0, 63,51,0, 63,52,0, 63,52,0, 63,52,0, 63,52,0, 63,52,0, 63,53,0
DB 63,53,0, 63,53,0, 63,53,0, 63,54,0, 63,54,0, 63,54,0, 63,54,0, 63,54,0
DB 63,55,0, 63,55,0, 63,55,0, 63,55,0, 63,56,0, 63,56,0, 63,56,0, 63,56,0
DB 63,57,0, 63,57,0, 63,57,0, 63,57,0, 63,57,0, 63,58,0, 63,58,0, 63,58,0
DB 63,58,0, 63,59,0, 63,59,0, 63,59,0, 63,59,0, 63,60,0, 63,60,0, 63,60,0
DB 63,60,0, 63,60,0, 63,61,0, 63,61,0, 63,61,0, 63,61,0, 63,62,0, 63,62,0
DB 63,62,0, 63,62,0, 63,63,0, 63,63,1, 63,63,2, 63,63,3, 63,63,4, 63,63,5
DB 63,63,6, 63,63,7, 63,63,8, 63,63,9, 63,63,10, 63,63,10, 63,63,11, 63,63,12
DB 63,63,13, 63,63,14, 63,63,15, 63,63,16, 63,63,17, 63,63,18, 63,63,19, 63,63,20
DB 63,63,21, 63,63,21, 63,63,22, 63,63,23, 63,63,24, 63,63,25, 63,63,26, 63,63,27
DB 63,63,28, 63,63,29, 63,63,30, 63,63,31, 63,63,31, 63,63,32, 63,63,33, 63,63,34
DB 63,63,35, 63,63,36, 63,63,37, 63,63,38, 63,63,39, 63,63,40, 63,63,41, 63,63,42
DB 63,63,42, 63,63,43, 63,63,44, 63,63,45, 63,63,46, 63,63,47, 63,63,48, 63,63,49
DB 63,63,50, 63,63,51, 63,63,52, 63,63,52, 63,63,53, 63,63,54, 63,63,55, 63,63,56
DB 63,63,57, 63,63,58, 63,63,59, 63,63,60, 63,63,61, 63,63,62, 0,0,0

PAL PROC ;сама процедура. что здесь происходит???
mov cx,255
mov bx,offset paleta
SS1: mov dx,3C8h
mov al,cl
out dx,al
inc dx
mov al,[bx]
out dx,al
mov al,[bx+1]
out dx,al
mov al,[bx+2]
out dx,al
add bx,3
loop SS1
ret
endp

Re: Создание палитры

Добавлено: 30 май 2007, 08:54
somewhere
&quot писал(а):mov cx,255
mov bx,offset paleta
Кол-во цветов для программирования в СХ и смещение палитры в ВХ
&quot писал(а):mov dx,3C8h
в DX - адрес порта адаптера EGA
&quot писал(а):mov al,cl
out dx,al
в этот порт кидаем номер цвета
&quot писал(а):inc dx
mov al,[bx]
out dx,al
mov al,[bx+1]
out dx,al
mov al,[bx+2]
out dx,al
А в следующий порт 3C9h кидаем RGB значения этого цвета.
&quot писал(а):add bx,3
loop SS1
и переходим к следующему.
Вообще для программирования палитры есть специальная функция прерывания 10H, так что вообще не понятно, зачем эта процедура нужна.

Re: Создание палитры

Добавлено: 30 май 2007, 17:10
Jery_Myau
system architect, пасибки большое