; ;X(i+1)= ( A*X(i) + B) mod 65536 ; ;A= 77 (A mod 4= 1) ;B= 1 нечетное ; ; random: MOV R30,rnd_l ;N=X MOV R31,rnd_h LSL rnd_l ;*2 ROL rnd_h LSL rnd_l ;*4 ROL rnd_h ADD R30,rnd_l ;N=N+X*4 ADC R31,rnd_h LSL rnd_l ;*8 ROL rnd_h ADD R30,rnd_l ;N=N+X*8 ADC R31,rnd_h LSL rnd_l ;*16 ROL rnd_h LSL rnd_l ;*32 ROL rnd_h LSL rnd_l ;*64 ROL rnd_h ADD R30,rnd_l ;N=N+X*64 итого N= X*77 ADC R31,rnd_h ADIW R30,1 ;N=N + 1 MOV rnd_l,R30 ;X=N MOV rnd_h,R31 RET