Генератор случайных чисел... Нужно упростить...

Тема в разделе "WASM.BEGINNERS", создана пользователем nitrotoluol, 13 июл 2007.

  1. nitrotoluol

    nitrotoluol New Member

    Публикаций:
    0
    Регистрация:
    5 сен 2006
    Сообщения:
    848
    САБЖ
    Вот мой код. Генерит число от _From до _To
    Можно ли как-то упростить этот алгоритм...?

    Код (Text):
    1. GenNum(DWORD _From, DWORD _To)
    2. {
    3.  
    4.    _asm
    5.    {
    6. GenBegin:
    7.        rdtsc
    8.        or eax, 1
    9.        and eax, 0FFFh
    10.        xchg ecx, eax
    11. Gen:
    12.        rdtsc
    13.        add ebx, eax
    14.        bswap ebx
    15.        loop Gen
    16. Cut:
    17.        cmp [_From], ebx
    18.        ja GenBegin
    19.        cmp [_To], ebx
    20.        jna GenEnd
    21.        shr ebx,1
    22.        jmp Cut
    23. GenEnd:
    24.    };
    25. };
     
  2. censored

    censored New Member

    Публикаций:
    0
    Регистрация:
    5 июл 2005
    Сообщения:
    1.615
    Адрес:
    деревня "Анонимные Прокси"
    > xchg ecx, eax
    А что после этого окажется в eax?
     
  3. MSoft

    MSoft New Member

    Публикаций:
    0
    Регистрация:
    16 дек 2006
    Сообщения:
    2.854
    censored
    цель этого - не помещение чего-то в EAX, а получение значения для счетчика, т.е. ECX
    nitrotoluol
    куда уж проще?
     
  4. ue23bn43

    ue23bn43 New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2007
    Сообщения:
    12
    Код (Text):
    1. rdtsc
    2. mov ecx, [_To]
    3. sub ecx, [_From]
    4. xor edx, edx
    5. inc ecx
    6. div ecx
    7. mov eax, edx
    8. add eax, [_From]