SoloCodigo
Programación General => ASM (Ensamblador) => Mensaje iniciado por: Ajovtic en Lunes 28 de Marzo de 2011, 16:36
-
Buenos días a todos.
Resulta que acabo de introducirme con el lenguaje ensamblador, y la verdad, estoy teniendo varios problemas.
Necesito un determinado código que me permita calcular lo siguiente:
si yo le doy de entrada un número necesito que me devuelva este número multiplicado por sus antecesores, es decir, su factorial. Si por ejemplo escribo 5 me devolvería:
5*4*3*2*1
o si es 7:
7*6*5*4*3*2*1
y así con cualquier número.
Supongo que debo hacerlo por recursión, pero no tengo nada claro como lograrlo.
Por si a alguien le interesa, uso el programa Mars.
Gracias y un saludo.
-
factorial:
cmp temp_645, 10
jz fin
inc temp_645
mul temp_645
mov ecx, temp_645
mov res_645, ecx
mov edx, res_645
call WriteInt
mov edx, offset msg1
call WriteString
loop factorial
asi es mas o menos la idea
-
Aquí no se hace la tarea, así que si nos muestras qué llevas hecho y las dudas que tienes pues mejor. Si no puedes mirar el ejemplo en IA32 que te ha dejado BerserkO.
Saludos