.text .globl __start __start: li $v0, 4 # mesg1 asking for a number la $a0, msg1 syscall li $v0,5 # system call that reads an integer syscall move $a0, $v0 jal fact move $a0, $v0 li $v0,1 # print factorial syscall li $v0,4 # print an end of line la $a0, cr syscall li $v0,10 # exit syscall fact: slti $t1, $a0, 1 bne $t1, $zero, done addi $sp, $sp, -8 sw $a0, 0 ($sp) sw $ra, 4 ($sp) addi $a0, $a0, -1 jal fact lw $t0, 0 ($sp) lw $ra, 4 ($sp) addi $sp, $sp, 8 mul $t0, $v0, $t0 move $v0, $t0 j done1 done: addi $v0, $zero, 1 done1:jr $ra .data msg1: .asciiz "Enter a integer number: " msg2: .asciiz "Factorial of the number = " cr: .asciiz "\n"