Вопрос № 19184: Уважаемые эксперты!
У кого-нибудь есть готовый генератор случайных чисел или алгоритм, как его сделать?
Я полный новичок в ASMе, но очень надо!
Заранее благодарен, Andtrew...
Вопрос № 19184
Уважаемые эксперты!
У кого-нибудь есть готовый генератор случайных чисел или алгоритм, как его сделать?
Я полный новичок в ASMе, но очень надо!
Заранее благодарен, Andtrew
Отправлен: 03.04.2005, 20:12
Вопрос задал: Чхинджерия Андрей Баджгеевич (статус: Посетитель)
Всего ответов отправлено: 1
Отвечает: Евгений Иванов
Здравствуйте, Чхинджерия Андрей Баджгеевич!
;Мощный генератор случайных чисел. IN -> AX-range; OUT -> AX-число 0...AX-1;
;Взят из C++;
proc Rnd ;=========================================================
push bx cx dx ax
mov bx,3
mov cx,43FDh
mov ax,wptr [bp+Seed-dat]
mov dx,wptr [bp+Seed+2-dat]
push bx ax
or bx,dx
mov bx,cx
jnz rnd_1_1
mul bx
pop ax bx
jmp rnd_1_2
rnd_1_1:
mul bx
mov cx,ax
pop ax dx
push ax
mul dx
add cx,ax
pop ax
mul bx
add dx,cx
rnd_1_2:
add ax,9EC3h
adc dx,26h
mov wptr [bp+Seed-dat],ax
mov wptr [bp+Seed+2-dat],dx
mov ax,dx
and ah,127
pop cx
cwd
idiv cx
mov ax,dx
pop dx cx bx
ret
endp
sub ah,ah ;Установим начальное RND
int 1Ah
mov wptr [bp+Seed-dat],dx
mov wptr [bp+Seed+2-dat],cx
Ответ отправил: Евгений Иванов (статус: Профессор)
Отправлен: 03.04.2005, 21:05