.data prompt: .asciiz "Enter a nonnegative integer: " msg: .asciiz "! = " .text .globl main main: li $v0, 4 la $a0, prompt syscall li $v0, 5 syscall move $s0, $v0 # $s0 contains input number n move $a0, $v0 li $v0, 1 syscall li $v0, 4 la $a0, msg syscall move $a0, $s0 jal fact move $a0, $v0 li $v0, 1 syscall li $v0, 10 syscall fact: li $v0, 1 loop: beqz $a0, done mul $v0, $v0, $a0 addi $a0, $a0, -1 j loop done: jr $ra