Just another update
This commit is contained in:
parent
a25938f123
commit
00a190b0a6
6591 changed files with 94363 additions and 23227 deletions
64
Task/Factorial/360-Assembly/factorial.360
Normal file
64
Task/Factorial/360-Assembly/factorial.360
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
FACTO CSECT
|
||||
USING FACTO,R13
|
||||
SAVEAREA B STM-SAVEAREA(R15)
|
||||
DC 17F'0'
|
||||
DC CL8'FACTO'
|
||||
STM STM R14,R12,12(R13)
|
||||
ST R13,4(R15)
|
||||
ST R15,8(R13)
|
||||
LR R13,R15 base register and savearea pointer
|
||||
ZAP N,=P'1' n=1
|
||||
LOOPN CP N,NN if n>nn
|
||||
BH ENDLOOPN then goto endloop
|
||||
LA R1,PARMLIST
|
||||
L R15,=A(FACT)
|
||||
BALR R14,R15 call fact(n)
|
||||
ZAP F,0(L'R,R1) f=fact(n)
|
||||
DUMP EQU *
|
||||
MVC S,MASK
|
||||
ED S,N
|
||||
MVC WTOBUF+5(2),S+30
|
||||
MVC S,MASK
|
||||
ED S,F
|
||||
MVC WTOBUF+9(32),S
|
||||
WTO MF=(E,WTOMSG)
|
||||
AP N,=P'1' n=n+1
|
||||
B LOOPN
|
||||
ENDLOOPN EQU *
|
||||
RETURN EQU *
|
||||
L R13,4(0,R13)
|
||||
LM R14,R12,12(R13)
|
||||
XR R15,R15
|
||||
BR R14
|
||||
FACT EQU * function FACT(l)
|
||||
L R2,0(R1)
|
||||
L R3,12(R2)
|
||||
ZAP L,0(L'N,R2) l=n
|
||||
ZAP R,=P'1' r=1
|
||||
ZAP I,=P'2' i=2
|
||||
LOOP CP I,L if i>l
|
||||
BH ENDLOOP then goto endloop
|
||||
MP R,I r=r*i
|
||||
AP I,=P'1' i=i+1
|
||||
B LOOP
|
||||
ENDLOOP EQU *
|
||||
LA R1,R return r
|
||||
BR R14 end function FACT
|
||||
DS 0D
|
||||
NN DC PL16'29'
|
||||
N DS PL16
|
||||
F DS PL16
|
||||
C DS CL16
|
||||
II DS PL16
|
||||
PARMLIST DC A(N)
|
||||
S DS CL33
|
||||
MASK DC X'40',29X'20',X'212060' CL33
|
||||
WTOMSG DS 0F
|
||||
DC H'80',XL2'0000'
|
||||
WTOBUF DC CL80'FACT(..)=................................ '
|
||||
L DS PL16
|
||||
R DS PL16
|
||||
I DS PL16
|
||||
LTORG
|
||||
YREGS
|
||||
END FACTO
|
||||
Loading…
Add table
Add a link
Reference in a new issue