50 lines
1.3 KiB
Plaintext
50 lines
1.3 KiB
Plaintext
FIBONACC CSECT
|
|
USING FIBONACC,R12
|
|
SAVEAREA B STM-SAVEAREA(R15)
|
|
DC 17F'0'
|
|
DC CL8'FIBONACC'
|
|
STM STM R14,R12,12(R13)
|
|
ST R13,4(R15)
|
|
ST R15,8(R13)
|
|
LR R12,R15
|
|
* ---- CODE
|
|
LA R1,0 f1=0
|
|
LA R2,1 f2=1
|
|
LA R4,1 i=1
|
|
LA R6,1
|
|
LH R7,N
|
|
LOOP BXH R4,R6,ENDLOOP for i=2 to n
|
|
LR R3,R2
|
|
AR R3,R1 f3=f1+f2
|
|
CVD R4,P i
|
|
UNPK Z,P
|
|
MVC C,Z
|
|
OI C+L'C-1,X'F0'
|
|
MVC WTOBUF+5(5),C+11
|
|
CVD R3,P f3
|
|
UNPK Z,P
|
|
MVC C,Z
|
|
OI C+L'C-1,X'F0'
|
|
MVC WTOBUF+12(10),C+6
|
|
WTO MF=(E,WTOMSG)
|
|
LR R1,R2 f1=f2
|
|
LR R2,R3 f2=f3
|
|
B LOOP next i
|
|
ENDLOOP EQU *
|
|
* ---- END CODE
|
|
RETURN EQU *
|
|
LM R14,R12,12(R13)
|
|
XR R15,R15
|
|
BR R14
|
|
* ---- DATA
|
|
N DC H'46' max i
|
|
P DS PL8
|
|
Z DS ZL16
|
|
C DS CL16
|
|
WTOMSG DS 0F
|
|
DC H'80'
|
|
DC H'0'
|
|
WTOBUF DC CL80'fibo(12345)=1234567890 '
|
|
YREGS
|
|
END FIBONACC
|