Показать сообщение отдельно

  #10  
Старый 25.05.2007, 16:47
!_filin_!
Участник форума
Регистрация: 07.01.2007
Сообщений: 103
С нами: 10179444

Репутация: 122
По умолчанию

Алгоритм: Генератор случайных чисел
Синтаксис: fasm/masm
Описание: Генератор случайных чисел, достаточно быстрый основан на сдвигах.
Пример вызова:
Код:
srand_init proc near; инициализирует кольцевой буфер для генератора, ВХОД:EAX начальное значение например из области данных BIOS
push bx
push si
push edx
mov edx,1
; засеять кольцевой буфер
mov bx, 216
do_0: mov word ptr ablex[bx], dx
sub eax,edx
xchg eax, edx
sub bx,4
jge do_0
;разогреть генератор
mov bx,216
do_1: push bx
do_2: mov si,bx
add si,120
cmp si,216
jbe skip
sub si, 216
skip: mov eax, dword ptr tablex[bx]
sub eax dword ptr tablex[si]
mov dword ptr tablex[bx], eax
sub bx,4
jge do_2
pop bx
sub bx,4
jge do_1
; инициализировать индексы
sub ax,ax
mov word ptr index0,ax
mov ax,124
mov index1, ax
pop edx
pop si
pop bx
ret
srand_init endp

Последний раз редактировалось !_filin_!; 24.06.2008 в 23:42..
 
Ответить с цитированием