· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.A&O —› Brain vs C compiler

<< . 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . >>

Посл.отвђт Сообщенiе


Дата: Авг 28, 2003 20:06:39

_G3
ООО!!!!
А может совместно устроим?
Я тут давно на COMPO слюни пускаю :)


Дата: Авг 28, 2003 20:15:25

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

Гм...
ОК, я посмотрю это.


Дата: Авг 28, 2003 20:15:54

Я не админ сайта. Но я думаю он тоже с удовольствием.
В приложении то, что у меня на данный момент получилось.
Файл rules.txt еще не доделан и с подсчетом времени надо что-то менять.

_244359088__Filter.rar


Дата: Авг 28, 2003 20:17:20

Забыл test.bat в архив засунуть ;(

copy logow.bmp image.bmp
filter.com emboss.com
fc image.bmp test.bmp


Дата: Авг 28, 2003 20:21:01

_G3
Я не админ сайта. Но я думаю он тоже с удовольствием.

ОК, посмотрим.


Дата: Авг 29, 2003 12:17:32

Новый код, при правильном выравнивании занимает 5 тактов!
	xor ebx, ebx
	inc eax
	cmp eax, 1
	sbb ebx, ebx
	and edx, ebx
	inc ebx
	sub eax, ebx
	inc edx
	cmp edx, 1
	sbb ebx, ebx
	not ebx
	add edx, ebx
	xor eax, edx

Я перепроверил код и с CMOVcc и сишный - они занимают несколько больше, особенно сишный с ветвлением. Думаю, что меньше и быстрее уже не получится.


Дата: Авг 29, 2003 13:16:57 · Поправил: The Svin

Думаю, что меньше и быстрее уже не получится.
:)
Я даже не понял ещё о чём речь но уже видно,
что:
inc eax ;1 байт 1 клок
cmp eax, 1 ;3 байта 1 клок (не парится - зависимость)
sbb ebx, ebx ;2 байта 1 клок (не парится - зависимость)
3 клока 6 байт


можно представить как
add eax,1 ;3 байта 1 клок eax=0 и CF=1 если было -1      
sbb ebx,ebx ;2 байта 1 клок

1 байт и 1 клок
Теперь выкинем начальный xor ebx,ebx за ненадобностью
(sbb ebx,ebx и так поставит его в 0 или -1)
ещё 2 байта и 1 клок
и того на первых строках 3и байта 2 клока.
Дальше не смотрел :)


Дата: Авг 29, 2003 13:23:57

Браво!
4 такта выходит. А еще меньше?
Про add я пропустил :(((


Дата: Авг 29, 2003 13:28:36

Про add не страшно, могло в голову не прийти.
Вот начальное xor ebx,ebx - просто невнимательность.


Дата: Авг 29, 2003 13:33:38

Та же история здесь:
inc edx
cmp edx, 1
sbb ebx, ebx

Меняем на
add edx,1
sbb ebx,ebx

ещё такт и байт в копилку


Дата: Авг 29, 2003 13:34:26

Та же история здесь:
inc edx
cmp edx, 1
sbb ebx, ebx

Меняем на
add edx,1
sbb ebx,ebx

ещё такт и байт в копилку


Дата: Авг 29, 2003 13:37:47

Задолбала эта защита от спама - ждал 3и минуты - всё равно говорит что 15 секунд не прошло


Дата: Авг 29, 2003 13:37:50

Да чистить ebx - лишнее, со старого варианта осталось :( На скорость это, правда, не повлияло :)
Алекс, исходное задание (чтоб не листать)
if a=-1
  a=b;
if a=-1
  a=0;


Да, с edx все тоже меняется.


Дата: Авг 29, 2003 13:39:50

ещё такт и байт в копилку
Байт - да, такт - нет :))


Дата: Авг 29, 2003 13:41:27


На скорость это, правда, не повлияло :)

Да она парилась с inc eax (теперь с add eax,1)

<< . 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . >>


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.108