    # MIPS assembly: native format
    # Automatically generated by ASM.MIPSGenerator

	.data
	.align 2
data_base:
	.space 0
	.asciiz "min int operation: result should be -2147483648, is: %d\n"
	.asciiz "paren assoc: result should be 100, is: %d\n"
	.asciiz "- assoc: result should be 10, is: %d\n"
	.asciiz "-,+ assoc: result should be 90, is: %d\n"
	.asciiz "- * assoc: result should be 80, is: %d\n"
	.asciiz "result should be 46, is: %d\n"
	.asciiz "uminus: result should be 3, is: %d\n"
	.asciiz "*, -, uses var: result should be 11, is: %d\n"
	.asciiz "*,- assoc: result should be 2, is: %d\n"
	.asciiz "Runtime exception: array index out of bounds.  Aborting.\n"
	.asciiz "Runtime exception: control fell off the end of a non-void procedure.  Aborting.\n"
	.text
	.globl main
main:
	la $23,data_base
	jal _main
	nop		# Function call: 0 args, 0 callersaves, 0 padding
	nop		# Placement of arguments
	jal exit
	nop		# Clean up from callout
	nop		# Function callout sequence completed
_main:
	.ent _main
	sw $30,-4($29)
	move $30,$29
	sw $31,-8($29)
	sub $29,$29,128
	nop		# main begins here
	li $15,-2147483647
	li $24,1
	sub $25,$15,$24
	sw $25,-84($30)
	lw $15,-84($30)
	sw $15,-16($30)
	nop		# Function call: 2 args, 0 callersaves, 0 padding
	nop		# Placement of arguments
	lw $5,-16($30)
	la $4,data_base + 0
	jal printf
	nop		# Clean up from callout
	nop		# Function callout sequence completed
	sw $2,-80($30)
	li $15,100
	li $24,50
	sub $25,$15,$24
	sw $25,-72($30)
	lw $15,-72($30)
	li $24,2
	mulo $25,$15,$24
	sw $25,-64($30)
	lw $15,-64($30)
	sw $15,-16($30)
	nop		# Function call: 2 args, 0 callersaves, 0 padding
	nop		# Placement of arguments
	lw $5,-16($30)
	la $4,data_base + 57
	jal printf
	nop		# Clean up from callout
	nop		# Function callout sequence completed
	sw $2,-56($30)
	li $15,100
	li $24,50
	sub $25,$15,$24
	sw $25,-48($30)
	lw $15,-48($30)
	li $24,40
	sub $25,$15,$24
	sw $25,-40($30)
	lw $15,-40($30)
	sw $15,-16($30)
	nop		# Function call: 2 args, 0 callersaves, 0 padding
	nop		# Placement of arguments
	lw $5,-16($30)
	la $4,data_base + 100
	jal printf
	nop		# Clean up from callout
	nop		# Function callout sequence completed
	sw $2,-32($30)
	li $15,100
	li $24,50
	sub $25,$15,$24
	sw $25,-24($30)
	lw $15,-24($30)
	li $24,40
	add $25,$15,$24
	sw $25,-20($30)
	lw $15,-20($30)
	sw $15,-16($30)
	nop		# Function call: 2 args, 0 callersaves, 0 padding
	nop		# Placement of arguments
	lw $5,-16($30)
	la $4,data_base + 138
	jal printf
	nop		# Clean up from callout
	nop		# Function callout sequence completed
	sw $2,-124($30)
	li $15,5
	li $24,2
	sll $25,$15,$24
	sw $25,-120($30)
	li $15,100
	lw $24,-120($30)
	sub $25,$15,$24
	sw $25,-116($30)
	lw $15,-116($30)
	sw $15,-16($30)
	nop		# Function call: 2 args, 0 callersaves, 0 padding
	nop		# Placement of arguments
	lw $5,-16($30)
	la $4,data_base + 178
	jal printf
	nop		# Clean up from callout
	nop		# Function callout sequence completed
	sw $2,-112($30)
	li $15,10
	li $24,5
	mulo $25,$15,$24
	sw $25,-108($30)
	lw $15,-108($30)
	li $24,4
	sub $25,$15,$24
	sw $25,-104($30)
	lw $15,-104($30)
	sw $15,-12($30)
	nop		# Function call: 2 args, 0 callersaves, 0 padding
	nop		# Placement of arguments
	lw $5,-12($30)
	la $4,data_base + 218
	jal printf
	nop		# Clean up from callout
	nop		# Function callout sequence completed
	sw $2,-100($30)
	li $15,3
	sw $15,-16($30)
	li $15,1
	li $24,1
	add $25,$15,$24
	sw $25,-96($30)
	lw $15,-96($30)
	sw $15,-12($30)
	nop		# Function call: 2 args, 0 callersaves, 0 padding
	nop		# Placement of arguments
	lw $5,-16($30)
	la $4,data_base + 247
	jal printf
	nop		# Clean up from callout
	nop		# Function callout sequence completed
	sw $2,-92($30)
	li $15,3
	sw $15,-16($30)
	li $15,3
	li $24,4
	add $25,$15,$24
	sw $25,-88($30)
	lw $15,-88($30)
	sw $15,-16($30)
	lw $15,-16($30)
	lw $24,-16($30)
	mulo $25,$15,$24
	sw $25,-76($30)
	lw $15,-76($30)
	li $24,-2
	sub $25,$15,$24
	sw $25,-68($30)
	lw $15,-68($30)
	sw $15,-16($30)
	nop		# Function call: 2 args, 0 callersaves, 0 padding
	nop		# Placement of arguments
	lw $5,-16($30)
	la $4,data_base + 283
	jal printf
	nop		# Clean up from callout
	nop		# Function callout sequence completed
	sw $2,-60($30)
	li $15,3
	li $24,2
	sll $25,$15,$24
	sw $25,-52($30)
	li $15,2
	li $24,5
	mulo $25,$15,$24
	sw $25,-44($30)
	lw $15,-52($30)
	lw $24,-44($30)
	sub $25,$15,$24
	sw $25,-36($30)
	lw $15,-36($30)
	sw $15,-16($30)
	nop		# Function call: 2 args, 0 callersaves, 0 padding
	nop		# Placement of arguments
	lw $5,-16($30)
	la $4,data_base + 328
	jal printf
	nop		# Clean up from callout
	nop		# Function callout sequence completed
	sw $2,-28($30)
label_0:
	nop		# main's epilogue
	move $29,$30
	lw $30,-4($29)
	lw $31,-8($29)
	jr $31
	.end _main
array_bounds_runtime_exception:
	nop		# Function call: 1 args, 0 callersaves, 0 padding
	nop		# Placement of arguments
	la $4,data_base + 367
	jal printf
	nop		# Clean up from callout
	nop		# Function callout sequence completed
	nop		# Function call: 0 args, 0 callersaves, 0 padding
	nop		# Placement of arguments
	jal exit
	nop		# Clean up from callout
	nop		# Function callout sequence completed
fell_off_end_runtime_exception:
	nop		# Function call: 1 args, 0 callersaves, 0 padding
	nop		# Placement of arguments
	la $4,data_base + 425
	jal printf
	nop		# Clean up from callout
	nop		# Function callout sequence completed
	nop		# Function call: 0 args, 0 callersaves, 0 padding
	nop		# Placement of arguments
	jal exit
	nop		# Clean up from callout
	nop		# Function callout sequence completed

