75 lines
2.2 KiB
Plaintext
75 lines
2.2 KiB
Plaintext
* Loop nested 12/08/2015
|
|
LOOPNEST CSECT
|
|
USING LOOPNEST,R12
|
|
LR R12,R15
|
|
BEGIN LA R6,0 i
|
|
LA R8,1
|
|
LA R9,20
|
|
LOOPI1 BXH R6,R8,ELOOPI1 do i=1 to hbound(x,1)
|
|
LA R7,0 j
|
|
LA R10,1
|
|
LA R11,20
|
|
LOOPJ1 BXH R7,R10,ELOOPJ1 do j=1 to hbound(x,2)
|
|
L R5,RANDSEED n
|
|
M R4,=F'397204094' r4r5=n*const
|
|
D R4,=X'7FFFFFFF' r5=r5 div (2^31-1)
|
|
ST R4,RANDSEED r4=r5 mod (2^31-1) ; n=r4
|
|
LR R5,R4 r5=n
|
|
LA R4,0
|
|
D R4,=F'20' r5=n div nn; r4=n mod nn
|
|
LR R2,R4 r2=randint(nn) [0:nn-1]
|
|
LA R2,1(R2) randint(nn)+1
|
|
LR R1,R6 i
|
|
BCTR R1,0
|
|
MH R1,=H'20'
|
|
LR R5,R7 j
|
|
BCTR R5,0
|
|
AR R1,R5
|
|
SLA R1,2
|
|
ST R2,X(R1) x(i,j)=randint(20)+1
|
|
B LOOPJ1
|
|
ELOOPJ1 B LOOPI1
|
|
ELOOPI1 MVC MVCZ,=CL80' '
|
|
LA R6,0 i
|
|
LA R8,1
|
|
LA R9,20
|
|
LOOPI2 BXH R6,R8,ELOOPI2 do i=1 to hbound(x,1)
|
|
LA R7,0 j
|
|
LA R10,1
|
|
LA R11,20
|
|
LOOPJ2 BXH R7,R10,ELOOPJ2 do j=1 to hbound(x,2)
|
|
LR R1,R6
|
|
BCTR R1,0
|
|
MH R1,=H'20'
|
|
LR R5,R7
|
|
BCTR R5,0
|
|
AR R1,R5
|
|
SLA R1,2
|
|
L R5,X(R1) x(i,j)
|
|
LR R2,R5
|
|
LA R3,MVCZ
|
|
AH R3,MVCI
|
|
XDECO R2,XDEC
|
|
MVC 0(4,R3),XDEC+8
|
|
LH R3,MVCI
|
|
LA R3,4(R3)
|
|
STH R3,MVCI
|
|
L R5,X(R1)
|
|
C R5,=F'20' if x(i,j)=20
|
|
BE ELOOPI2 then exit
|
|
B LOOPJ2
|
|
ELOOPJ2 XPRNT MVCZ,80
|
|
MVC MVCI,=H'0'
|
|
MVC MVCZ,=CL80' '
|
|
B LOOPI2
|
|
ELOOPI2 XPRNT MVCZ,80
|
|
RETURN XR R15,R15
|
|
BR R14
|
|
X DS 400F
|
|
MVCZ DS CL80
|
|
MVCI DC H'0'
|
|
XDEC DS CL16
|
|
RANDSEED DC F'16807' running n
|
|
YREGS
|
|
END LOOPNEST
|