#### # # hankd@engr.uky.edu # February 28, 2001 # .data x: .word 1 y: .word 6 z: .word 7 mes1: .asciiz "Initial values of x, y, z:\n" mes2: .asciiz "Final values of x, y, z:\n" nl: .asciiz "\n" #### # # Main # .text .globl main main: li $v0, 4 # print "Initial values of x, y, z:\n" la $a0, mes1 syscall li $v0, 1 # print x lw $a0, x syscall li $v0, 4 # print "\n" la $a0, nl syscall li $v0, 1 # print y lw $a0, y syscall li $v0, 4 # print "\n" la $a0, nl syscall li $v0, 1 # print z lw $a0, z syscall li $v0, 4 # print "\n" la $a0, nl syscall jal myadd # myadd() li $v0, 4 # print "Final values of x, y, z:\n" la $a0, mes2 syscall li $v0, 1 # print x lw $a0, x syscall li $v0, 4 # print "\n" la $a0, nl syscall li $v0, 1 # print y lw $a0, y syscall li $v0, 4 # print "\n" la $a0, nl syscall li $v0, 1 # print z lw $a0, z syscall li $v0, 4 # print "\n" la $a0, nl syscall li $v0, 10 # exit() syscall #### # # Addition routine: # # x = y + z # .text .globl myadd myadd: la $t0, y # t0 = y lw $t0, 0($t0) la $t1, z # t1 = z lw $t1, 0($t1) add $t2, $t0, $t1 # t2 = y + z la $t0, x # x = t2 sw $t2, 0($t0) jr $ra # return