Board.KolibriOS.org

Official KolibriOS board
It is currently Tue Nov 19, 2019 11:46 am

All times are UTC+03:00




Post new topic  Reply to topic  [ 391 posts ]  Go to page Previous 117 18 19 20 2127 Next
Author Message
 Post subject: Re: Вопрос
PostPosted: Sat Mar 05, 2016 9:12 pm 
Offline

Joined: Sat Nov 14, 2015 11:15 am
Posts: 299
Yason , виндовые цвета, в частности вот эти:
ClBlack:=$000000; ClLime=$00FF00; ClBlue=$FF0000; СlRed=$0000FF;
надо преобразовать в КОС цвета
т. е. на переставить в DWORDе котрый PutPixel_color, байты, первый и третий !?... вроде так?!... хотя я уже сам сомневаюсь делая пробы и испытания... что-то не получается у меня добится соответствия того что мне нужно


Top
   
 Post subject: Re: Вопрос
PostPosted: Sat Mar 05, 2016 9:26 pm 
Offline

Joined: Sat Nov 14, 2015 11:15 am
Posts: 299
Yason и другие участники форума, пока всё! Спасибо! Разобрался что к чему!


Top
   
 Post subject: Re: Вопрос
PostPosted: Sat Mar 05, 2016 9:55 pm 
Offline
Mentor/Kernel Developer
User avatar

Joined: Thu Mar 26, 2015 5:16 pm
Posts: 1264
Ужос то какой...

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

bswap eax
ror eax, 8

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

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


Top
   
 Post subject: Re: Вопрос
PostPosted: Sun Mar 06, 2016 12:54 am 
Offline
User avatar

Joined: Sat Sep 27, 2014 2:59 pm
Posts: 102
[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. Но спорить не собираюсь - каждый пишет, кому как нравится.


Top
   
 Post subject: Re: Вопрос
PostPosted: Sun Mar 06, 2016 12:56 am 
Offline
User avatar

Joined: Sat Sep 27, 2014 2:59 pm
Posts: 102
И кто, как умеет.


Top
   
 Post subject: Re: Вопрос
PostPosted: Sun Mar 06, 2016 1:37 am 
Offline
Mentor/Kernel Developer
User avatar

Joined: Thu Mar 26, 2015 5:16 pm
Posts: 1264
Твой последний вообще не правильный, получится 4,1,2,3.
Тогда уж будет

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


Top
   
 Post subject: Re: Вопрос
PostPosted: Sun Mar 06, 2016 1:40 am 
Offline
Mentor/Kernel Developer
User avatar

Joined: Thu Mar 26, 2015 5:16 pm
Posts: 1264
Или

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


Top
   
 Post subject: Re: Вопрос
PostPosted: Sun Mar 06, 2016 3:47 am 
Offline
User avatar

Joined: Sat Sep 27, 2014 2:59 pm
Posts: 102
Так я в начале так и писал, только не оптимизировал. И ещё писал, что непомню где альфа канал распологается, и напмсал код в соответствии со своим предположением.


Top
   
 Post subject: Re: Вопрос
PostPosted: Sun Mar 06, 2016 3:57 am 
Offline
User avatar

Joined: Sat Sep 27, 2014 2:59 pm
Posts: 102
Если б, знал бы точно, где альфа конал находится (так как не помню, а выяснять бало лень), написал бы правильно. Я ALEXS1983 просто набор команд дал, которыми можно оперировать, а там пусть сам решает, что ему лучше.


Top
   
 Post subject: Re: Вопрос
PostPosted: Sun Mar 06, 2016 10:05 am 
Offline

Joined: Sat Nov 14, 2015 11:15 am
Posts: 299
Ребята не спорьте! Я уже решил ту проблему!... и уже отписал об этом!


Top
   
 Post subject: Re: Вопрос
PostPosted: Tue Mar 15, 2016 1:00 pm 
Offline

Joined: Sat Nov 14, 2015 11:15 am
Posts: 299
Прошу помощи!
Вот процедура которая инициализирует таблицу адресами процедур для 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]

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


Top
   
 Post subject: Re: Вопрос
PostPosted: Tue Mar 15, 2016 2:18 pm 
Offline

Joined: Sat Nov 14, 2015 11:15 am
Posts: 299
Хочу дебагить свою программу. как значение регистра выводить в форму ?


Top
   
 Post subject: Re: Вопрос
PostPosted: Mon Mar 21, 2016 8:34 pm 
Offline

Joined: Sat Nov 14, 2015 11:15 am
Posts: 299
Допустим нужно реализовать вот такое:

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

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


Top
   
 Post subject: Re: Вопрос
PostPosted: Tue Mar 22, 2016 3:42 pm 
Offline
Mentor/Kernel Developer
User avatar

Joined: Thu Mar 26, 2015 5:16 pm
Posts: 1264
Есть ещё функция 26.9


Top
   
 Post subject: Re: Вопрос
PostPosted: Thu Mar 24, 2016 12:28 pm 
Offline

Joined: Sat Nov 14, 2015 11:15 am
Posts: 299
А вот кто мне скажет, разъяснит, что это за тема такая пошла, что пишется
"
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!
"
Что это вообще такое с чем его едят ? :-) Акция какая-то ? Да и в чате чего-то там об этом пишется....
Где об этом можно почитать на РУССКОМ языке ?


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 391 posts ]  Go to page Previous 117 18 19 20 2127 Next

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Limited