# main_modified.asm
.data
prompt1: .asciiz "Introduza um numero\n"
result1: .asciiz "O factorial do número "
result2: .asciiz " é: "

.text
.globl main

main:
    la $a0, prompt1       # Load address of prompt1
    li $v0, 4             # syscall for print_str
    syscall

    li $v0, 5             # syscall for read_int
    syscall
    move $a0, $v0         # Move read value to $a0 (n)
    move $t1, $v0         # Store n in $t1

    jal factorial         # Call factorial function
    move $t0, $v0         # Store result in $t0 (f)

    la $a0, result1       # Load address of result1
    li $v0, 4             # syscall for print_str
    syscall

    move $a0, $t1         # Load n
    li $v0, 1             # syscall for print_int
    syscall

    la $a0, result2       # Load address of result2
    li $v0, 4             # syscall for print_str
    syscall

    move $a0, $t0         # Load factorial result
    li $v0, 1             # syscall for print_int
    syscall

    li $v0, 10            # syscall for exit
    syscall
