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

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

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

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

Мой совет - тупо перебирайте все комбинации (64 это не так уж и много, а если ещё и цикл сделать, то вообще просто). И если в палитре есть ярко-красный цвет, то вы его найдёте
...
Рейтинг: 0 / 0
Путаница со цветом в ASM
    #35086225
Vladao
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вообщем в коде пишу следующее, а получается всё один цвет красный, почему так??
Код: plaintext
1.
2.
mov     color,100100b    ;RGB-code  100100 = 36 
call     draw
mov     color,000100b
...
Рейтинг: 0 / 0
Путаница со цветом в ASM
    #35086270
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VladaoВообщем в коде пишу следующее, а получается всё один цвет красный, почему так??
Код: plaintext
1.
2.
mov     color,100100b    ;RGB-code  100100 = 36 
call     draw
mov     color,000100b
А ты не мог бы для начала сказать, где именно ты рисовать пытаешься? В какой такой системе свои шести битные цвета используешь?
EGA? Текстовый режим в консоли? Еще что-то?
...
Рейтинг: 0 / 0
Путаница со цветом в ASM
    #35086502
Vladao
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Щас всё станет ясно...
Код: 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
Путаница со цветом в ASM
    #35086611
Фотография XDiaBLo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что-то
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
Путаница со цветом в ASM
    #35086613
Фотография XDiaBLo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотя не уверен, нужно посмотреть на функцию, может там один байт не на цвет
...
Рейтинг: 0 / 0
Путаница со цветом в ASM
    #35087512
Vladao
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
XDiaBLo, в этом то отрывке кода всё нормально...
...
Рейтинг: 0 / 0
Путаница со цветом в ASM
    #35087665
Фотография XDiaBLo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VladaoXDiaBLo, в этом то отрывке кода всё нормально...
Да там короче экспериментировать надо, ты в TASM небось компилируешь?
...
Рейтинг: 0 / 0
Путаница со цветом в ASM
    #35088485
Vladao
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, в TASM. C чем экспериментировать, с перебором?? ничего не получается всё равно:(
...
Рейтинг: 0 / 0
Путаница со цветом в ASM
    #35088681
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во первых, не надо так часто пользоваться макросами. Макросы это не функции.
Во вторых, режим 12h это 16-и цветный режим. А 16-и цветные, в отличие от 256-и и выше не байт=>пиксел, а четыре байта=>восемь пикселов, ищи в учебники описание видео-слоев... так они кажется называются. Давно я на EGA не рисовал, не помню уже русскую терминологию.
...
Рейтинг: 0 / 0
Путаница со цветом в ASM
    #35100426
Vladao
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, всем кто помогал советом мне, вообщем через шестибитный цвет не получается никак, просто тогда через номера цветовых регистров сделаю - их там много:)
Проблема вылезла одна, у меня в коде задействованы клавиши "Вверх" и "Вниз", когда я читаю символы с клавы, а если не их нажимаю - всё виснет...Подскажите как исправить?
P.S. мой код был ранее представлен здесь, чуть выше...
...
Рейтинг: 0 / 0
Путаница со цветом в ASM
    #35101682
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VladaoСпасибо, всем кто помогал советом мне, вообщем через шестибитный цвет не получается никак, просто тогда через номера цветовых регистров сделаю - их там много:) У тебя проблема не в цвете. Ты пиксел на экран не правильно рисуешь.
...
Рейтинг: 0 / 0
Путаница со цветом в ASM
    #35101982
Vladao
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В каком месте неправильно?
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Путаница со цветом в ASM
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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