####
#
# hankd@engr.uky.edu
# September 21, 2021
#

.data

x:	.word	1		# 4 bytes per word
	.word	6
	.word	7

mes1:	.asciiz	"Initial values of x[]:\n"
mes2:	.asciiz	"Final values of x[]:\n"
nl:	.asciiz "\n"

####
#
# Main
# 

.text
.globl main

main:
	li	$v0, 4		# print "Initial values of x[]:\n"
	la	$a0, mes1
	syscall
	li	$v0, 1		# print x[0]
	lw	$a0, x
	syscall
	li	$v0, 4		# print "\n"
	la	$a0, nl
	syscall
	li	$v0, 1		# print x[1]
	lw	$a0, x+4
	syscall
	li	$v0, 4		# print "\n"
	la	$a0, nl
	syscall
	li	$v0, 1		# print x[2]
	lw	$a0, x+8
	syscall
	li	$v0, 4		# print "\n"
	la	$a0, nl
	syscall

	jal	myadd		# myadd()

	li	$v0, 4		# print "Final values of x[]:\n"
	la	$a0, mes2
	syscall
	li	$v0, 1		# print x[0]
	lw	$a0, x
	syscall
	li	$v0, 4		# print "\n"
	la	$a0, nl
	syscall
	li	$v0, 1		# print x[1]
	lw	$a0, x+4
	syscall
	li	$v0, 4		# print "\n"
	la	$a0, nl
	syscall
	li	$v0, 1		# print x[2]
	lw	$a0, x+8
	syscall
	li	$v0, 4		# print "\n"
	la	$a0, nl
	syscall

	li	$v0, 10		# exit()
	syscall

####
#
# Addition routine:
#
# x[0] = x[1] + x[2]
# 

.text
.globl myadd

myadd:
	la	$t0, x		# t0 = &x
	lw	$t1, 4($t0)	# t1 = x[1]
	lw	$t2, 8($t0)	# t2 = x[2]
	addu	$t3, $t1, $t2	# t3 = t1 + t2
	sw	$t3, 0($t0)	# x[0] = t3

	jr	$ra		# return
