# proc1.asm # MIPS program written to illustrate calling a procedure with register argument # Susan Lincke .data numbr: .word 24 numad1: .word 0 .text .globl main main: lw $a0,numbr # numad1 = increment(number) jal incr sw $v0,numad1 li $v0, 10 # exit syscall ###################################### # Increment(): Increments a number and returns it # # Arguments: lw $a0,number # increment(number) # jal incr # # Stack usage: 0($sp) = return address ###################################### incr: # $v0 = increment($a0=number) addi $sp,$sp,-4 # stack.push(4) sw $ra,0($sp) # stack[0] = return address addi $v0,$a0,1 # return_value = number++ lw $ra,0($sp) addi $sp,$sp,4 # stack.pop(4) jr $ra # return