данные в 4 байта.
sel_color:
db 0x00
db 0x00
db 0x00
db 0x00
.end:
Первый пустой, в остальные 3 записывается информация о цвете. Запись идёт корректно. После этого я пытаюсь считать эти данные и вывести их по частям, как RGB. Но в итоге получается, что первые 2 цвета оно выводит перепутанными местами, а вместо третьего - вообще нули:
xor ecx, ecx
mov cl, byte [sel_color + 1]
...
mov cl, byte [sel_color + 2]
...
mov cl, byte [sel_color + 3]
...
"Запись идёт корректно" "Но вместо третьего - вообще нули" Уверен, что запись корректна идёт? И где чтение показано?
Так чтение тут и показано как раз Запись идёт в саму метку и там всё окей, цвет показывает правильно визуально А вот числовые значения - нет
Стоп, про какие "числовые значения" речь?
В метке лежит цвет в хекс формате, с двумя ведущими нулями Например 0x00AABBCD Я хочу поочерёдно считать красный, зелёный, и синий цвет в младший байт регистра ecx, в данном случае - биты со значениями 0xAA, 0xBB, 0xCD
Так, и что у тебя не получается тут?
обрати внимание, что для формата rgb, насколько я знаю в винде, старший байт - или альфа канал или нулевой (не значащий байт). в твоем случае незначащий первый байт
Обсуждают сегодня