; ; Macro function for : ; ; For i := 1 to y do sum := sum + randint(x) ; where RANDINT returns random integer 1 <= r <= x ; ; Seed is a global variable declared in PASCAL main ; .title RAND_REP .ident /rand_rep/ .psect misc1$code,pic,con,rel,lcl,shr,exe,rd,nowrt,2 .entry rand_rep,^M movl 4(ap),r4 cmpl r4,#0 bleq 2$ movl #0,r0 1$: mull2 #16807,seed bicl2 #^X80000000,seed subl3 #1,seed,r2 emul r2,8(ap),#0,r2 ediv #2147483647,r2,r2,r3 addl r2,r0 sobgtr r4,1$ addl 4(ap),r0 ret 2$: movl #0,r0 ret .end