Вопрос № 20091: Подскажите кто нитьалгоритм случайних чисел под винду на асм!...
Вопрос № 20091
Подскажите кто нитьалгоритм случайних чисел под винду на асм!
Приложение:
Отправлен: 22.04.2005, 08:55
Вопрос задал: Шумкин, Роман, Леонидович (статус: Посетитель)
Всего ответов отправлено: 2
Отвечает: Котиев Зураб
Здравствуйте, Шумкин, Роман, Леонидович!
используй rdtsc (read time stamp counter) оно возвращает кол-во тактов процессора с момента его включения в edx:eax;
для того чтобы его масм компилил ему надо указать на привелигиверованную операцию т.е. .586p или используй опкод (db 0Fh,31h)
потом сохраняешь полученное значение как начальное для твоего ГСЧ(генератор случайных чисел);
ну далее типа ГСЧ с моего полиморфника:
randinit: инициализация (делается 1 раз)
push edx
rdtsc
mov [rand],eax
pop edx
ret
gsch:(сам генератор)
push edx
imul eax,[rand],1664525
add eax,1013904223
bswap eax
mov [rand],eax
imul eax,[rand],41C64E6Dh
add eax,00003039h
pop edx
ret
числа можешь варьировать , вообще алгоритм ГСЧ от языка не зависит просто на асме его можно сделать эффективней
Ответ отправил: Котиев Зураб (статус: 4-ый класс)
Отправлен: 22.04.2005, 09:47
Отвечает: Евгений Иванов
Здравствуйте, Шумкин, Роман, Леонидович!
есть подпрограммы для взятия даты, времени (GetCurrentTime). есть таймер (SetTimer).
Ответ отправил: Евгений Иванов (статус: Профессор)
Отправлен: 22.04.2005, 12:49