Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Путаница со цветом в ASM / 18 сообщений из 18, страница 1 из 1
18.01.2008, 23:37
    #35072949
Vladao
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Путаница со цветом в ASM
Ребята, привет!:)

Ситуация следующая, не знаю как представить ярко-красный цвет в шести цветовых регистрах, т.е его RGB-код. Знаю только как красный как известно, в любом компе система кодирования цвета 2-х уровневая, т.е. 6-разрядов в регистре (а может быть и больше конешно в др.случае), есть rgbRGB, каждый бит которого отвечает за свой оттенок в результирующей палитре цвета. Чтобы было более предметно выложу часть моего кода:
Код: plaintext
1.
2.
mov     color,100100b    ;RGB-code красного
call     draw
 mov     color,??????b

Подскажите пжста код ярко_красного и как это всё получается, спасибо.
...
Рейтинг: 0 / 0
21.01.2008, 17:54
    #35076941
Gatman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Путаница со цветом в ASM
Открой mspaint, в нём палитра->изменить палитру -> определить цвет, выбирай свой ярко красный и смотри значения для RGB
...
Рейтинг: 0 / 0
22.01.2008, 07:18
    #35077520
XDiaBLo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Путаница со цветом в ASM
Я так понял шестибитный цвет? Если у тебя на самом деле rgbRGB, выходит как я понимаю два бита на каждый цвет, значит если 100100b там где единички, это идут биты красного цвета, то ярче я так понимаю уже никак...
...
Рейтинг: 0 / 0
22.01.2008, 12:10
    #35078317
Gatman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Путаница со цветом в ASM
XDiaBLoЯ так понял шестибитный цвет? Если у тебя на самом деле rgbRGB, выходит как я понимаю два бита на каждый цвет, значит если 100100b там где единички, это идут биты красного цвета, то ярче я так понимаю уже никак...
Вообще, если не ошибаюсь, должно быть подряд по 2 бита, т.е. в этом случае 110000b.
...
Рейтинг: 0 / 0
22.01.2008, 17:18
    #35079566
Vladao
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Путаница со цветом в ASM
Да, XDiaBLo , шестибитный цвет...я тоже не пойму, вроде код 100100b самая яркость цвета, а оказывается можно и ярко-красный изобразить, но не знаю как...((
...
Рейтинг: 0 / 0
24.01.2008, 14:38
    #35085021
Путаница со цветом в ASM
двумя битами можно закодировать 4 градации каждого цветового компонента.
Поэтому я сомневаюсь, что это RGB кодировка.

Больше похоже на палитровую.
6 бит - значит 64 цвета в палитре (помню в режимах EGA можно было выводить на экран любые 16 цветов из доступных 64).

Мой совет - тупо перебирайте все комбинации (64 это не так уж и много, а если ещё и цикл сделать, то вообще просто). И если в палитре есть ярко-красный цвет, то вы его найдёте
...
Рейтинг: 0 / 0
24.01.2008, 20:06
    #35086225
Vladao
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Путаница со цветом в ASM
Вообщем в коде пишу следующее, а получается всё один цвет красный, почему так??
Код: plaintext
1.
2.
mov     color,100100b    ;RGB-code  100100 = 36 
call     draw
mov     color,000100b
...
Рейтинг: 0 / 0
24.01.2008, 20:56
    #35086270
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Путаница со цветом в ASM
VladaoВообщем в коде пишу следующее, а получается всё один цвет красный, почему так??
Код: plaintext
1.
2.
mov     color,100100b    ;RGB-code  100100 = 36 
call     draw
mov     color,000100b
А ты не мог бы для начала сказать, где именно ты рисовать пытаешься? В какой такой системе свои шести битные цвета используешь?
EGA? Текстовый режим в консоли? Еще что-то?
...
Рейтинг: 0 / 0
25.01.2008, 01:06
    #35086502
Vladao
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Путаница со цветом в ASM
Щас всё станет ясно...
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
;Рисование флага+движение (быстрая графика) 
                     
                     ;директивы сегментов
        .model small ;модель памяти
        .stack 100h ;определение стека,его размер
        .data ;определение сегмента данных
        x	dw	 230 
	y0	dw	 150 
	hi	dw	 50 
	w	dw	 25 
	yc	dw	?
	color	db	 0 
     increm	dw	 0 
; 12 -red
; 15 -white

;Макрос настройки цветового регистра reg на цветовой оттенок rgb

nastr		macro	reg,rgb
		mov	ax,1000h
		mov	bh,rgb 
		mov	bl,reg
		int	10h
endm

;Процедура записи значений во внутренние регистры адаптера через порты (адресный и данных)
;prt - номер адресного порта,nreg - номер регистра, val - значение

ports		macro	prt,nreg,val
		mov	dx,prt
		mov	al,nreg
		out	dx,al
		inc	dx
		mov	al,val
		out	dx,al
endm

;Макрос рисования горизонтальной линии непосредственно в видеопамяти
;xl,yl,len,col - то же самое, что и ранее для BIOS

adgline		macro	xl,yl,len,col
		local	beg
		mov	cx,len		;Line length To CX
		xor	si,si		;SI= 0 
		mov	al, 80 		;AL= 80 
		mul	yl		;AL= 80 *Y0 (bytes)
		mov	dx,ax		;AX->DX
		mov	ax,xl		;X0->AX
		mov	bl, 8 		; 8 ->BL
		div	bl		;X0=X0 /  8  (bytes)
		xor	ah,ah		;AH= 0 
		add	dx,ax		;DX=Y0* 80 +X0 (bytes) = startbyte
		mov	bx,dx		;DX->BX
beg:		ports	3c4h, 2 ,0fh ;регистр Адреса Указателя Последовательности доступен через порт, а  2 -это индекс регистра Маскирования Растра
		ports	3ceh, 8 ,0ffh ; регистр Графического Контроллера доступен через порт, а  8  - это индекс регистра Битовая Маска
		mov	byte ptr es:[bx][si],00000000b ; si-смещение области данных,где находится пиксельная ячейка
		ports	3c4h, 2 ,col 
		mov	byte ptr es:[bx][si],0ffh
		inc	si	
		loop	beg
	endm	


;макрос консольной приостановки до нажатия клавиши
;после нажатия клавиши два байта поступают в регистр АХ;
;макрос может использоваться для очистки консольного буфера
stop	macro
	mov	ah, 0 
	int	16h
	endm


        .code ;определение сегмента кода
        mov     ax,@data; Инициализация сегментных регистров
        mov     ds,ax 
	mov	ax,0a000h ;адрес видеобуфера
	mov	es,ax
	mov	ah, 0  ;функция  0  (ah= 0 )устанавливает видео-режим
	mov	al,12h ;номер режима
	int	10h ;обращение к видео-BIOS через прерывание int 10h
	nastr	 8 , 4 
	nastr	 0 , 9 ;   ->      001   001 
	stop;		       RGB rgb
 	call	draw
	
	
again:	mov	ah, 1 ; функция прерывания int 16h для чтения символа с клавиатуры
	int	16h			
	jz	again
	cmp	ah, 1 	
	jne	m3
	jmp	endprog		
m3:	cmp	ah,50h		;down arrow Code
	mov	increm, 10 
	je	m2
	cmp	ah, 72 		;up arrow Code
	mov	increm,- 10 
	jne	again
m2:     mov     color, 0 
     call     draw
     add     y0, 50 
     call     draw
     add     y0,- 50 
     mov     ax,increm
     add     y0,ax
     mov     color,100100b    ;RGB-code  100100 = 36 
     call     draw
     mov     color,000100b
     add     y0, 50 
     call     draw
     add     y0,- 50 
     stop
     jmp     again

proc		draw		
		mov	ax,y0
		mov	yc,ax
		mov	cx,hi	
loopy:		push	cx
		adgline	x,yc,w,color
		inc	yc
		pop	cx
		loop	loopy
		ret
	    	endp
		
endprog:
	nastr	 4 , 8 
	mov	ax, 3 
	int	10h
	stop
	mov	ax,4c00h ;Вызов функции завершения программы
	int	21h
end
...
Рейтинг: 0 / 0
25.01.2008, 07:18
    #35086611
XDiaBLo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Путаница со цветом в ASM
Что-то
nastr macro reg,rgb
mov ax,1000h
mov bh,rgb
mov bl,reg
int 10h
endm

не очень похоже на nastr 0,9; -> 001 001
там выходит nastr 0,9; -> 00000000 00001001
и вполне даже 16 бит на цвета
...
Рейтинг: 0 / 0
25.01.2008, 07:19
    #35086613
XDiaBLo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Путаница со цветом в ASM
Хотя не уверен, нужно посмотреть на функцию, может там один байт не на цвет
...
Рейтинг: 0 / 0
25.01.2008, 12:42
    #35087512
Vladao
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Путаница со цветом в ASM
XDiaBLo, в этом то отрывке кода всё нормально...
...
Рейтинг: 0 / 0
25.01.2008, 13:19
    #35087665
XDiaBLo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Путаница со цветом в ASM
VladaoXDiaBLo, в этом то отрывке кода всё нормально...
Да там короче экспериментировать надо, ты в TASM небось компилируешь?
...
Рейтинг: 0 / 0
25.01.2008, 17:00
    #35088485
Vladao
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Путаница со цветом в ASM
Да, в TASM. C чем экспериментировать, с перебором?? ничего не получается всё равно:(
...
Рейтинг: 0 / 0
25.01.2008, 18:02
    #35088681
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Путаница со цветом в ASM
Во первых, не надо так часто пользоваться макросами. Макросы это не функции.
Во вторых, режим 12h это 16-и цветный режим. А 16-и цветные, в отличие от 256-и и выше не байт=>пиксел, а четыре байта=>восемь пикселов, ищи в учебники описание видео-слоев... так они кажется называются. Давно я на EGA не рисовал, не помню уже русскую терминологию.
...
Рейтинг: 0 / 0
31.01.2008, 13:43
    #35100426
Vladao
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Путаница со цветом в ASM
Спасибо, всем кто помогал советом мне, вообщем через шестибитный цвет не получается никак, просто тогда через номера цветовых регистров сделаю - их там много:)
Проблема вылезла одна, у меня в коде задействованы клавиши "Вверх" и "Вниз", когда я читаю символы с клавы, а если не их нажимаю - всё виснет...Подскажите как исправить?
P.S. мой код был ранее представлен здесь, чуть выше...
...
Рейтинг: 0 / 0
31.01.2008, 17:46
    #35101682
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Путаница со цветом в ASM
VladaoСпасибо, всем кто помогал советом мне, вообщем через шестибитный цвет не получается никак, просто тогда через номера цветовых регистров сделаю - их там много:) У тебя проблема не в цвете. Ты пиксел на экран не правильно рисуешь.
...
Рейтинг: 0 / 0
31.01.2008, 19:31
    #35101982
Vladao
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Путаница со цветом в ASM
В каком месте неправильно?
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Путаница со цветом в ASM / 18 сообщений из 18, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]