Unidad 4 Proyecto - JoseCorreaMorales/lenguajes-de-interfaz GitHub Wiki

section .data
Msg1 db "Introduce un numero ", 10
Msg1Len equ $-Msg1 

resultado db '0'

section .text
    global _start

_start:
    xor cl, cl   ; Inicializar contador a cero

    mov byte al, 5  ; Número a calcular el factorial
    mov byte bl, 1  ; Variable para almacenar el resultado

for_loop:
    cmp cl, al  ; Comparar contador con el número
    jg exit_loop     ; Saltar si el contador es mayor que el número

    mov ah, cl       ; Mover el valor del contador al registro AH
    mul bl  ; Multiplicar resultado por el valor en AH
    mov bl, al  ; Guardar el resultado de la multiplicación

    inc cl           ; Incrementar el contador
    jmp for_loop     ; Volver al inicio del bucle

exit_loop:

    mov eax, bl  ; Extender el byte del resultado a una palabra
    add eax, 48  ; Convertir el valor numérico a su representación ASCII
    mov [resultado], al  ; Guardar el resultado en la variable result

    mov eax, 4
    mov ebx, 1
    mov edx, resultado
    mov edx, 1 
    int 0x80

    mov eax, 1
    xor ebx, ebx
    int 0x80