Factorial

Calcular el factorial de un n煤mero.

Esta es una tarea muy sencilla que se puede resolver de manera recursiva e iterativa.

En este caso vamos a ver la forma recursiva, la m谩s simple de implementar.

java
public int factorial(int n) {
if (n == 0) {
return 1;
}
return n * factorial(n - 1);
}

Funciones de ayuda

Vamos a utilizar la funci贸n ya programada de multiplicaci贸n que nos permite multiplicar los numeros contenidos en los registros RB y RC.

En el acumulador vamos a guardar tanto el numero a realizar el factorial tanto como el resultado.

C贸digo final

INISP EEEE MOV 3, AC # 3! CALL TFFACTORIAL FIN # define fact(AC) TFFACTORIAL CMP 1 BEQ T_BASE PUSH # X SUB 01 # AC = X-1 CALL TFFACTORIAL # fact(X-1) MOV AC, RC POP MOV AC, RB # X CALL TFMULT # X * fact(X-1) JMP TFFACTORIAL_RET T_BASE MOV 1, AC # base case TFFACTORIAL_RET RET # define multiply(RB, RC) TFMULT MOV RB, AC PUSH TSTART MOV RC, AC CMP 01 BEQ TFIN POP ADD RB PUSH MOV RC, AC SUB 01 MOV AC, RC JMP TSTART TFIN POP RET