Есть идея использовать секунды из переменной @Time, но боюсь в 1 секунду уложится компиляция всего исходника - как быть? Или это невозможно?
Так можно наверное сделать супер-пупер цикл (затормаживать компиляцию) и в нём периодически брать эту переменную , потом можно ещё ксорить с другой такой-же динамически изменяющейся переменной (ещё часы, минуты можно использовать) и повторять так много раз . Если компилиться будет не слишком часто , то должно получаться доволи рандомное значение . На боард.фасм видел макрос XOR , он может пригодиться .
> потом можно ещё ксорить с другой такой-же динамически изменяющейся переменной Какой? Где ее взять то? > ещё часы, минуты можно использовать Не, вот если б можно было миллисекунды заюзать
представляю компиляцию, на пару часов а вообще, конечно, чуть менее удобно, но можно сделать по типу search&replace, т.е. написать внешний парсер исходника, который будет вставлять перед самой компиляцией рандомные значения...
Вот ещё вариант, с использованием FASM. Каждый вызов макроса random меняет значение __RND__ Код (Text): include 'ext.fi' __RND__ = 0 __SEED__ = %t macro random { __SEED__ = (__SEED__ mod 127773 * 16807) - (__SEED__ / 127773 * 2836) __RND__ = __SEED__ mod 0xffffffff ; размерность = DWORD } repeat 50 random DISPLAY <__RND__ @HEX @n end repeat
S_T_A_S_ Хорошая идея, но только мне на выходе желательно получить рандомное число из диапазона 0..20(дес.)