Ackermann function: Difference between revisions
Content added Content deleted
Line 32: | Line 32: | ||
To simplify, the program is recursive not reentrant. |
To simplify, the program is recursive not reentrant. |
||
<lang 360asm>* Ackermann function 07/09/2015 |
<lang 360asm>* Ackermann function 07/09/2015 |
||
&LAB XDECO ®,&TARGET |
|||
.*------------------------------------------------------------------* |
|||
.* THIS MACRO DISPLAYS THE REGISTER CONTENTS AS A TRUE * |
|||
.* DECIMAL VALUE. * |
|||
*------------------------------------------------------------------* |
|||
AIF (T'® EQ 'O').NOREG |
|||
AIF (T'&TARGET EQ 'O').NODEST |
|||
&LAB B I&SYSNDX BRANCH AROUND WORK AREA |
|||
W&SYSNDX DS XL8 CONVERSION WORK AREA |
|||
I&SYSNDX CVD ®,W&SYSNDX CONVERT TO DECIMAL |
|||
MVC &TARGET,=XL12'402120202020202020202020' |
|||
ED &TARGET,W&SYSNDX+2 MAKE FIELD PRINTABLE |
|||
BC 2,*+12 BYPASS NEGATIVE |
|||
MVI &TARGET+12,C'-' INSERT NEGATIVE SIGN |
|||
B *+8 BYPASS POSITIVE |
|||
MVI &TARGET+12,C'+' INSERT POSITIVE SIGN |
|||
MEXIT |
|||
.NOREG MNOTE 8,'INPUT REGISTER OMITTED' |
|||
MEXIT |
|||
.NODEST MNOTE 8,'TARGET FIELD OMITTED' |
|||
MEXIT |
|||
MEND |
|||
ACKERMAN CSECT |
ACKERMAN CSECT |
||
USING ACKERMAN,R12 r12 : base register |
USING ACKERMAN,R12 r12 : base register |