Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
61
Task/Permutations/360-Assembly/permutations.360
Normal file
61
Task/Permutations/360-Assembly/permutations.360
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
* Permutations 26/10/2015
|
||||
PERMUTE CSECT
|
||||
USING PERMUTE,R15 set base register
|
||||
LA R9,TMP-A n=hbound(a)
|
||||
SR R10,R10 nn=0
|
||||
LOOP LA R10,1(R10) nn=nn+1
|
||||
LA R11,PG pgi=@pg
|
||||
LA R6,1 i=1
|
||||
LOOPI1 CR R6,R9 do i=1 to n
|
||||
BH ELOOPI1
|
||||
LA R2,A-1(R6) @a(i)
|
||||
MVC 0(1,R11),0(R2) output a(i)
|
||||
LA R11,1(R11) pgi=pgi+1
|
||||
LA R6,1(R6) i=i+1
|
||||
B LOOPI1
|
||||
ELOOPI1 XPRNT PG,80
|
||||
LR R6,R9 i=n
|
||||
LOOPUIM BCTR R6,0 i=i-1
|
||||
LTR R6,R6 until i=0
|
||||
BE ELOOPUIM
|
||||
LA R2,A-1(R6) @a(i)
|
||||
LA R3,A(R6) @a(i+1)
|
||||
CLC 0(1,R2),0(R3) or until a(i)<a(i+1)
|
||||
BNL LOOPUIM
|
||||
ELOOPUIM LR R7,R6 j=i
|
||||
LA R7,1(R7) j=i+1
|
||||
LR R8,R9 k=n
|
||||
LOOPWJ CR R7,R8 do while j<k
|
||||
BNL ELOOPWJ
|
||||
LA R2,A-1(R7) r2=@a(j)
|
||||
LA R3,A-1(R8) r3=@a(k)
|
||||
MVC TMP,0(R2) tmp=a(j)
|
||||
MVC 0(1,R2),0(R3) a(j)=a(k)
|
||||
MVC 0(1,R3),TMP a(k)=tmp
|
||||
LA R7,1(R7) j=j+1
|
||||
BCTR R8,0 k=k-1
|
||||
B LOOPWJ
|
||||
ELOOPWJ LTR R6,R6 if i>0
|
||||
BNP ILE0
|
||||
LR R7,R6 j=i
|
||||
LA R7,1(R7) j=i+1
|
||||
LOOPWA LA R2,A-1(R7) @a(j)
|
||||
LA R3,A-1(R6) @a(i)
|
||||
CLC 0(1,R2),0(R3) do while a(j)<a(i)
|
||||
BNL AJGEAI
|
||||
LA R7,1(R7) j=j+1
|
||||
B LOOPWA
|
||||
AJGEAI LA R2,A-1(R7) r2=@a(j)
|
||||
LA R3,A-1(R6) r3=@a(i)
|
||||
MVC TMP,0(R2) tmp=a(j)
|
||||
MVC 0(1,R2),0(R3) a(j)=a(i)
|
||||
MVC 0(1,R3),TMP a(i)=tmp
|
||||
ILE0 LTR R6,R6 until i<>0
|
||||
BNE LOOP
|
||||
XR R15,R15 set return code
|
||||
BR R14 return to caller
|
||||
A DC C'ABCD' <== input
|
||||
TMP DS C temp for swap
|
||||
PG DC CL80' ' buffer
|
||||
YREGS
|
||||
END PERMUTE
|
||||
Loading…
Add table
Add a link
Reference in a new issue