Сейчас на форуме: ==DJ==[ZLO], Magister Yoda, Rio (+6 невидимых)

 eXeL@B —› Основной форум —› алгоритм
Посл.ответ Сообщение


Ранг: 124.7 (ветеран)
Активность: 0.070
Статус: Участник

Создано: 01 февраля 2005 10:18
· Личное сообщение · #1

необходимо перебрать числа начиная с 0x00000000 по 0x99999999 и отсеять те, где присутствуют [A..F] делаю примерно так.. как оптимизировать?
                mov dword ptr[_name],-1
@lll:
                inc dword ptr[_name]
                mov ecx,8
                mov eax,dword ptr[_name]
@ddd:
                mov bl,al
                and bl,0Fh
                cmp bl,0Ah
                jge @lll
                ror eax,4
                loop @ddd
                cmp dword ptr[_name],99999999h
                jl  @lll




Ранг: 352.4 (мудрец), 4thx
Активность: 0.150
Статус: Участник
retired

Создано: 01 февраля 2005 10:47
· Личное сообщение · #2

hi

обитателям этого форума: не обижайтесь
Nitro:попробуй это спросить на wasm.ru



Ранг: 2.4 (гость)
Активность: 0=0
Статус: Участник

Создано: 01 февраля 2005 15:03
· Личное сообщение · #3

В твоём случае могу предложить вместо всего куска:

mov dword ptr[_name], 99999999h
ret

результат на выходе процедуры будет тотже самый. А если серьёзно, то не понятно что ты делаешь с отфильтрованным массивом (куда он заносится или какие действия нужно с этими числами производить?), полностью опиши задачу - а там уже посмотрим.



Ранг: 192.3 (ветеран), 18thx
Активность: 0.120
Статус: Участник
stoned machine-gunner

Создано: 01 февраля 2005 15:43
· Личное сообщение · #4

как же тут не обижаться...

-----
once you have tried it, you will never want anything else





Ранг: 124.7 (ветеран)
Активность: 0.070
Статус: Участник

Создано: 01 февраля 2005 20:04
· Личное сообщение · #5

wasm.ru и правда рулит www.wasm.ru/forum/action=vthread&forum=17&topic=8569 MEW я написал всего лишь часть (обобщил).. поставленую задачу решил. вот это решение, которое подсказал Black_mirror с wasm - рулит не по детски
	lea eax,[edx+66666667h]
	not eax
	and edx,eax
	and edx,88888888h
	not eax
	shr edx,1
	xor eax,edx
	shr edx,1
	xor eax,edx
	sub eax,66666666h
	mov edx,eax




Ранг: 192.3 (ветеран), 18thx
Активность: 0.120
Статус: Участник
stoned machine-gunner

Создано: 01 февраля 2005 21:45
· Личное сообщение · #6

знаем, что васм рулит ;) но обижать всё равно не хорошо...

-----
once you have tried it, you will never want anything else




Ранг: 192.3 (ветеран), 18thx
Активность: 0.120
Статус: Участник
stoned machine-gunner

Создано: 01 февраля 2005 21:47
· Личное сообщение · #7

ваще супер мОзги там сидят имхо, афигет как оптимизировали, я в шоке...

-----
once you have tried it, you will never want anything else




Ранг: 39.1 (посетитель)
Активность: 0.030
Статус: Участник

Создано: 04 февраля 2005 01:55
· Личное сообщение · #8

проникнуться б в алго ещё...



Ранг: 192.3 (ветеран), 18thx
Активность: 0.120
Статус: Участник
stoned machine-gunner

Создано: 04 февраля 2005 02:22
· Личное сообщение · #9

да, это точно... мне до таких решений далеко, очень...

-----
once you have tried it, you will never want anything else



 eXeL@B —› Основной форум —› алгоритм
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати