buenas!
Necesito hacer una funcion que me calcule el factorial de un numero de forma recursiva, ya lo tengo hecho pero tengo un pequeña duda:
el codigo es el siguiente:
main: .
.
. PUSH n
CALL factorial
ADD SP,2
.
.
. factorial: PUSH BP
MOV BP,SP ; bloque de activacion
CMP 4[BP],1 ; n=1
si:JNE altra
MOV AX, 1 ; return 1
JMP fi
altra: PUSH 4[BP]-1 ; empilar n-1
CALL factorial ; llamada a la funcion
MOV CX,4[BP] ;CX=n
MUL CX ; AX*CX=resultado en DX:AX mas de 16 bits, AX menos de 16 bits
fi:POP BP
RET
factorial nos devuelve su resultado por AX, si es de menos de 16 bits, en caso de ser de mas bits el resultado se devuelve por DX:AX
en caso de que el resultado se devuelva por DX:AX, como se podria multiplicar ese valor?