Puede alguien, indicarme cómo Convertir un fuente de Assembler 360 de IBM a ASN de emu8086?

Para mis clases en la Universidad, aquí lees pongo el código:

* Nth root - x**(1/n) - 29/07/2018
NTHROOT CSECT
USING NTHROOT,R13 base register
B 72(R15) skip savearea
DC 17F'0' savearea
SAVE (14,12) save previous context
ST R13, 4(R15) link backward
ST R15, 8(R13) link forward
LR R13,R15 set addressability
BAL R14,ROOTN call rootn(x,n)
LE F0,XN xn=rootn(x,n)
LA R0,6 decimals=6
BAL R14,FORMATF edit xn
MVC PG(13),0(R1) output xn
XPRNT PG,L'PG print buffer
L R13,4(0,R13) restore previous savearea pointer
RETURN (14,12),RC=0 restore registers from calling sav
ROOTN MVC ZN,=E'0' zn=0 ----------------------------
MVC ZN,N n
MVI ZN,X'46' zn=unnormalize(n)
LE F0,ZN zn
AE F0,=E'0' normalized
STE F0,ZN zn=normalize(n)
LE F6,=E'0' xm=0
LE F0,X x
DE F0,ZN /zn
STE F0,XN xn=x/zn
WHILEA LE F0,XN xn
SER F0,F6 xn-xm
LPER F0,F0 abs((xn-xm)
DE F0,XN /xn
CE F0,EPSILON while abs((xn-xm)/xn)>epsilon
BNH EWHILEA ~
LE F6,XN xm=xn
LE F0,ZN zn
SE F0,=E'1' zn-1
MER F0,F6 f0=(zn-1)*xm
L R2,N n
BCTR R2,0 n-1
LE F2,=E'1' xm
POW MER F2,F6 *xm
BCT R2,POW f2=xm**(n-1)
LE F4,X x
DER F4,F2 x/xm**(n-1)
AER F0,F4 (zn-1)*xm+x/xm**(n-1)
DE F0,ZN /zn
STE F0,XN xn=((zn-1)*xm+x/xm**(n-1))/zn
B WHILEA endwhile
EWHILEA LE F0,XN xn
BR R14 return ---------------------------
COPY FORMATF format a float
X DC E'2' x <== input
N DC F'2' n <== input
EPSILON DC E'1E-6' imprecision
XN DS E xn :: output
ZN DS E zn=float(n)
PG DC CL80' ' buffer
REGEQU
END NTHROOT

Añade tu respuesta

Haz clic para o