# multi.asm # Simple routine to multiply N integers to demo a loop. # Author: R.N. Ciminero # Revision date: 10-28-94 Original def. # See Patterson & Hennessy pg. A-46 for system services. .text .globl main main: li $v0,4 # output msg1 la $a0, msg1 syscall li $v0,5 # input N and save syscall move $t0,$v0 move $t3,$t0 li $t1, 1 # initialize counter (i) li $t2, 1 # initialize product loop: mul $t2,$t2,$t1 # N = N*i beq $t0, $t1, exit # if i < N, continue addi $t1, $t1, 1 # N = N + 1 j loop exit: li $v0, 4 # output msg2 la $a0, msg2 syscall li $v0,1 # output sum move $a0, $t2 syscall li $v0,4 # output lf la $a0, lf syscall li $v0,10 # exit syscall .data msg1: .asciiz "\nEnter (N)? " msg2: .asciiz "\nN! = " lf: .asciiz "\n"