;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx;
;                                                                                  ;
;                                                                                  ;
;            ##########       ########      ###      ###      ########             ;
;            ###########     ##########     ####     ###     ##########            ;
;            ###     ###    ###      ###    #####    ###    ###     ###            ;
;            ###     ###    ###      ###    ######   ###    ###                    ;
;            ###########    ############    ### ###  ###    ###                    ;
;            ##########     ############    ###  ### ###    ###     ####           ;
;            ###     ###    ###      ###    ###   ######    ###     ####           ;
;            ###     ###    ###      ###    ###    #####    ###      ###           ;
;            ###     ###    ###      ###    ###     ####     ###########           ;
;            ###     ###    ###      ###    ###      ###      ##########           ;
;                                                                                  ;
;                                                                                  ;
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx;
;                                                                                  ;
;             			RAndom Number Generator				   					   ;                  
;                                                                                  ;
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx;
;                                                                                  ; 
;                                   	:)					   					   ;	                                                   
;                                                                                  ; 
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx;
;функция RANG32                                                                    ;  
;Генератор Случайных Чисел (ГСЧ)                                                   ;
;Вход:                                                                             ;
;eax - число                                                                       ;
;Выход:                                                                            ;
;еах - случайное число в диапазоне [0;eax)                                         ;
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx;
                                                                                   ;
                                                                                   ;
                                                                                   ;
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx;
;							ФИЧИ:                                              	   ;
;(+) базонезависимость								   							   ;
;(+) прост в использовании                                                         ;
;(+) не использует WinApi							   							   ;                                           
;                                                                                  ;								   
;(-) проверь на "равномерность" этот грязный генератор				   			   ;
;                                                                                  ;
;(x) Прошел проверку на Windows XP SP2, на других не тестил.			   		   ;
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx;
                                                                                   ;
                                                                                   ;
                                                                                   ;
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx;
;				ИСПОЛЬЗОВАНИЕ:                                     				   ;
;1)Подключение:                                                                    ;
;	rang32.asm                                                                 	   ;  
;2)Вызов:(пример)                                                                  ;
;	mov		eax,100h		                                           			   ;
;	call	RANG32                                                             	   ;                                                                                                                    
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx;
                                                                                   ;
                                                                                   ;
                                                                                   ;
                                                                                   ;
                                                                                   ;
																		;m1x       ;
							           							   ;pr0mix@mail.ru ;	
							                           							   ;
RANG32:                                                                            ;
	pushad                                                                         ;
	xchg	eax,ecx                                                                ;
	                                                                               ;
	db		0fh,31h      								;rdtsc             	       ;
	                                                                               ;
	imul	eax,eax,1664525                                                        ;
	add		eax,1013904223                              ;+                 		   ;    
	xor		edx,edx                                                            	   ;	   
	mul		ecx
	mul		ecx											;действует как div 		   ;	   	
	mov		dword ptr [esp+1ch],edx                                            	   ;	   
	popad                                                                          ;  
	ret                                                                            ;
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx;
;Конец функции RANG32                                                              ;
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx;
SizeRANG32	equ		$-RANG32
