Page 19 of 29

Re: Вопрос

Posted: Sat Mar 05, 2016 9:12 pm
by ALEXS1983
Yason , виндовые цвета, в частности вот эти:
ClBlack:=$000000; ClLime=$00FF00; ClBlue=$FF0000; СlRed=$0000FF;
надо преобразовать в КОС цвета
т. е. на переставить в DWORDе котрый PutPixel_color, байты, первый и третий !?... вроде так?!... хотя я уже сам сомневаюсь делая пробы и испытания... что-то не получается у меня добится соответствия того что мне нужно

Re: Вопрос

Posted: Sat Mar 05, 2016 9:26 pm
by ALEXS1983
Yason и другие участники форума, пока всё! Спасибо! Разобрался что к чему!

Re: Вопрос

Posted: Sat Mar 05, 2016 9:55 pm
by Pathoswithin
Ужос то какой...

Если в регистре, то

bswap eax
ror eax, 8

Если в памяти, то

mov al, [pointer]
xchg [pointer+2], al
mov [pointer], al

Re: Вопрос

Posted: Sun Mar 06, 2016 12:54 am
by Yason
[quote="Pathoswithin"]Ужос то какой...

Если в регистре, то

bswap eax
ror eax, 8

Если в памяти, то

mov al, [pointer]
xchg [pointer+2], al
mov [pointer], al[/quote]

Во-первых, я не мастер оптимизаций. Во-вторых оптимизировать налету, не умею. Во-вторых, последним постом, я оптимизировал по скорости, пому как, предпочитаю скорость.

mov eax, dword [pixel_color1]
rol eax, 8
mov [pixel_color2], dword eax

Два обращения к памяти будут работать быстрее, чем твои 3. Но спорить не собираюсь - каждый пишет, кому как нравится.

Re: Вопрос

Posted: Sun Mar 06, 2016 12:56 am
by Yason
И кто, как умеет.

Re: Вопрос

Posted: Sun Mar 06, 2016 1:37 am
by Pathoswithin
Твой последний вообще не правильный, получится 4,1,2,3.
Тогда уж будет

mov eax, [pixel_color1]
bswap eax
ror eax, 8
mov [pixel_color2], eax

Re: Вопрос

Posted: Sun Mar 06, 2016 1:40 am
by Pathoswithin
Или

mov eax, [pixel_color1]
rol eax, 8
bswap eax
mov [pixel_color2], eax

Re: Вопрос

Posted: Sun Mar 06, 2016 3:47 am
by Yason
Так я в начале так и писал, только не оптимизировал. И ещё писал, что непомню где альфа канал распологается, и напмсал код в соответствии со своим предположением.

Re: Вопрос

Posted: Sun Mar 06, 2016 3:57 am
by Yason
Если б, знал бы точно, где альфа конал находится (так как не помню, а выяснять бало лень), написал бы правильно. Я ALEXS1983 просто набор команд дал, которыми можно оперировать, а там пусть сам решает, что ему лучше.

Re: Вопрос

Posted: Sun Mar 06, 2016 10:05 am
by ALEXS1983
Ребята не спорьте! Я уже решил ту проблему!... и уже отписал об этом!

Re: Вопрос

Posted: Tue Mar 15, 2016 1:00 pm
by ALEXS1983
Прошу помощи!
Вот процедура которая инициализирует таблицу адресами процедур для Case of , точнее говоря вырезка из таблицы

;Инициализация таблицы Case of
;= Таблица Case of
adrs rd 256
init_table_in_case_opcode:
mov[adrs+(4*0)],C00
.........................
.........................
mov[adrs+(4*11)],C0B
.........................
.........................
mov[adrs+(4*29)],C1D
mov[adrs+(4*30)],C1E
mov[adrs+(4*40)],C28
.........................
.........................
mov[adrs+(4*41)],C29
mov[adrs+(4*42)],C2A
mov[adrs+(4*253)],CFD
mov[adrs+(4*254)],CFE
mov[adrs+(4*255)],CFF
ret
;/конец = Таблица Case of


Вот процедура вызывающая соответствующую процедуру в зависимости от значения opcode.
(Каждая вызываемая процедура из таблицы заканчивается pop ebx ret)

i8080_do_opcodes_case_opcode_of:
push ebx
mov ebx,eax
mov eax,[opcode]
jmp dword [eax*4+adrs]

Правильно ли это реализовано ?

Re: Вопрос

Posted: Tue Mar 15, 2016 2:18 pm
by ALEXS1983
Хочу дебагить свою программу. как значение регистра выводить в форму ?

Re: Вопрос

Posted: Mon Mar 21, 2016 8:34 pm
by ALEXS1983
Допустим нужно реализовать вот такое:

1. ВРЕМЯ=0
2. выполнить процедуру
3. пока ВРЕМЯ<=20/1000 секунды — отдавать ресурсы другим приложения ну или пустой цикл, иначе идём дальше п.4.
4............

КАКУЮ ПРОЦЕДУРУ ИСПОЛЬЗОВАТЬ ДЛЯ РЕАЛИЗАЦИЯ ТАКОГО ?
Проблема в том что в Функция 5 (пауза) там есть миллисекунды, но это не совсем то, что нужно. А в Функция 3 (получить системное время) нет миллисекунд.
Чего я не знаю ? Что я не понимаю ?

Re: Вопрос

Posted: Tue Mar 22, 2016 3:42 pm
by Pathoswithin
Есть ещё функция 26.9

Re: Вопрос

Posted: Thu Mar 24, 2016 12:28 pm
by ALEXS1983
А вот кто мне скажет, разъяснит, что это за тема такая пошла, что пишется
"
GSoC students, march 25 is a deadline for submitting final proposals.
Note: because of students' traditions in time management, GSoC site might fall on the last day and be unavailable. Beware and hurry!
"
Что это вообще такое с чем его едят ? :-) Акция какая-то ? Да и в чате чего-то там об этом пишется....
Где об этом можно почитать на РУССКОМ языке ?