• Viernes 8 de Noviembre de 2024, 23:21

Autor Tema:  Factorial Recursivo En Asm 8086  (Leído 8432 veces)

Srgndl

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Factorial Recursivo En Asm 8086
« en: Viernes 29 de Febrero de 2008, 22:41 »
0
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?