.data functable_Test: Test_setval Test_getval Test_start Test_next .text jal Main li $v0 10 syscall Main: sw $fp -8($sp) move $fp $sp subu $sp $sp 64 sw $ra -4($fp) sw $s0 -12($fp) sw $s1 -16($fp) sw $s2 -20($fp) sw $s3 -24($fp) sw $s4 -28($fp) sw $s5 -32($fp) sw $s6 -36($fp) sw $s7 -40($fp) li $a0 24 jal _heapAlloc move $s7 $v0 la $t9 functable_Test sw $t9 0($s7) move $s6 $s7 move $s7 $s6 lw $s6 0($s7) lw $s5 8($s6) sw $t3 -44($fp) sw $t4 -48($fp) sw $t5 -52($fp) sw $t6 -56($fp) sw $t7 -60($fp) sw $t8 -64($fp) move $a0 $s7 jalr $s5 lw $t3 -44($fp) lw $t4 -48($fp) lw $t5 -52($fp) lw $t6 -56($fp) lw $t7 -60($fp) lw $t8 -64($fp) move $s6 $v0 move $s5 $s6 move $s6 $s5 move $a0 $s6 jal _print lw $s0 -12($fp) lw $s1 -16($fp) lw $s2 -20($fp) lw $s3 -24($fp) lw $s4 -28($fp) lw $s5 -32($fp) lw $s6 -36($fp) lw $s7 -40($fp) lw $ra -4($fp) lw $fp -8($fp) addu $sp $sp 64 jr $ra Test_setval: sw $fp -8($sp) move $fp $sp subu $sp $sp 64 sw $ra -4($fp) sw $s0 -12($fp) sw $s1 -16($fp) sw $s2 -20($fp) sw $s3 -24($fp) sw $s4 -28($fp) sw $s5 -32($fp) sw $s6 -36($fp) sw $s7 -40($fp) move $s5 $a0 move $s6 $a1 move $s7 $a2 lw $s4 20($s5) move $s5 $s6 move $s6 $s5 move $a0 $s6 li $t9 4 mul $s5 $a0 $t9 move $a0 $s5 li $t9 4 addu $s5 $a0 $t9 move $a0 $s4 move $t9 $s5 addu $s5 $a0 $t9 move $s4 $s7 move $s7 $s4 sw $s7 0($s5) li $s7 0 move $s5 $s7 move $s7 $s5 move $v0 $s7 lw $s0 -12($fp) lw $s1 -16($fp) lw $s2 -20($fp) lw $s3 -24($fp) lw $s4 -28($fp) lw $s5 -32($fp) lw $s6 -36($fp) lw $s7 -40($fp) lw $ra -4($fp) lw $fp -8($fp) addu $sp $sp 64 jr $ra Test_getval: sw $fp -8($sp) move $fp $sp subu $sp $sp 64 sw $ra -4($fp) sw $s0 -12($fp) sw $s1 -16($fp) sw $s2 -20($fp) sw $s3 -24($fp) sw $s4 -28($fp) sw $s5 -32($fp) sw $s6 -36($fp) sw $s7 -40($fp) move $s6 $a0 move $s7 $a1 lw $s5 20($s6) move $s6 $s5 move $s5 $s7 move $a0 $s5 li $t9 4 mul $s7 $a0 $t9 move $a0 $s7 li $t9 4 addu $s7 $a0 $t9 move $a0 $s6 move $t9 $s7 addu $s7 $a0 $t9 lw $s6 0($s7) move $s7 $s6 move $s6 $s7 move $s7 $s6 move $s6 $s7 move $s7 $s6 move $v0 $s7 lw $s0 -12($fp) lw $s1 -16($fp) lw $s2 -20($fp) lw $s3 -24($fp) lw $s4 -28($fp) lw $s5 -32($fp) lw $s6 -36($fp) lw $s7 -40($fp) lw $ra -4($fp) lw $fp -8($fp) addu $sp $sp 64 jr $ra Test_start: sw $fp -8($sp) move $fp $sp subu $sp $sp 64 sw $ra -4($fp) sw $s0 -12($fp) sw $s1 -16($fp) sw $s2 -20($fp) sw $s3 -24($fp) sw $s4 -28($fp) sw $s5 -32($fp) sw $s6 -36($fp) sw $s7 -40($fp) move $s7 $a0 move $s6 $s7 move $s5 $s6 move $s6 $s5 li $s5 10 move $s4 $s5 sw $t3 -44($fp) sw $t4 -48($fp) sw $t5 -52($fp) sw $t6 -56($fp) sw $t7 -60($fp) sw $t8 -64($fp) move $a0 $s4 jal AllocArray lw $t3 -44($fp) lw $t4 -48($fp) lw $t5 -52($fp) lw $t6 -56($fp) lw $t7 -60($fp) lw $t8 -64($fp) move $s5 $v0 move $s4 $s5 move $s5 $s4 sw $s5 20($s7) li $a0 24 jal _heapAlloc move $s5 $v0 la $t9 functable_Test sw $t9 0($s5) move $s4 $s5 move $s5 $s4 move $s4 $s5 move $s5 $s4 lw $s4 0($s5) lw $s3 12($s4) sw $t3 -44($fp) sw $t4 -48($fp) sw $t5 -52($fp) sw $t6 -56($fp) sw $t7 -60($fp) sw $t8 -64($fp) move $a0 $s5 jalr $s3 lw $t3 -44($fp) lw $t4 -48($fp) lw $t5 -52($fp) lw $t6 -56($fp) lw $t7 -60($fp) lw $t8 -64($fp) move $s4 $v0 move $s3 $s4 sw $s3 16($s7) move $s3 $s6 move $s6 $s3 lw $s3 0($s6) lw $s4 0($s3) li $s3 2 move $s5 $s3 li $s3 42 move $s2 $s3 sw $t3 -44($fp) sw $t4 -48($fp) sw $t5 -52($fp) sw $t6 -56($fp) sw $t7 -60($fp) sw $t8 -64($fp) move $a0 $s6 move $a1 $s5 move $a2 $s2 jalr $s4 lw $t3 -44($fp) lw $t4 -48($fp) lw $t5 -52($fp) lw $t6 -56($fp) lw $t7 -60($fp) lw $t8 -64($fp) move $s3 $v0 move $s2 $s3 move $s3 $s2 move $s2 $s7 move $s5 $s2 sw $s5 16($s7) lw $s5 16($s7) move $s7 $s5 lw $s5 0($s7) lw $s2 4($s5) li $s5 2 move $s4 $s5 sw $t3 -44($fp) sw $t4 -48($fp) sw $t5 -52($fp) sw $t6 -56($fp) sw $t7 -60($fp) sw $t8 -64($fp) move $a0 $s7 move $a1 $s4 jalr $s2 lw $t3 -44($fp) lw $t4 -48($fp) lw $t5 -52($fp) lw $t6 -56($fp) lw $t7 -60($fp) lw $t8 -64($fp) move $s5 $v0 move $s4 $s5 move $s3 $s4 move $s4 $s3 move $s3 $s4 move $s4 $s3 move $v0 $s4 lw $s0 -12($fp) lw $s1 -16($fp) lw $s2 -20($fp) lw $s3 -24($fp) lw $s4 -28($fp) lw $s5 -32($fp) lw $s6 -36($fp) lw $s7 -40($fp) lw $ra -4($fp) lw $fp -8($fp) addu $sp $sp 64 jr $ra Test_next: sw $fp -8($sp) move $fp $sp subu $sp $sp 64 sw $ra -4($fp) sw $s0 -12($fp) sw $s1 -16($fp) sw $s2 -20($fp) sw $s3 -24($fp) sw $s4 -28($fp) sw $s5 -32($fp) sw $s6 -36($fp) sw $s7 -40($fp) move $s6 $a0 lw $s7 16($s6) move $s6 $s7 move $s7 $s6 move $v0 $s7 lw $s0 -12($fp) lw $s1 -16($fp) lw $s2 -20($fp) lw $s3 -24($fp) lw $s4 -28($fp) lw $s5 -32($fp) lw $s6 -36($fp) lw $s7 -40($fp) lw $ra -4($fp) lw $fp -8($fp) addu $sp $sp 64 jr $ra AllocArray: sw $fp -8($sp) move $fp $sp subu $sp $sp 64 sw $ra -4($fp) sw $s0 -12($fp) sw $s1 -16($fp) sw $s2 -20($fp) sw $s3 -24($fp) sw $s4 -28($fp) sw $s5 -32($fp) sw $s6 -36($fp) sw $s7 -40($fp) move $s7 $a0 move $a0 $s7 li $t9 4 mul $s6 $a0 $t9 move $a0 $s6 li $t9 4 addu $s6 $a0 $t9 move $a0 $s6 jal _heapAlloc move $s5 $v0 sw $s7 0($s5) move $v0 $s5 lw $s0 -12($fp) lw $s1 -16($fp) lw $s2 -20($fp) lw $s3 -24($fp) lw $s4 -28($fp) lw $s5 -32($fp) lw $s6 -36($fp) lw $s7 -40($fp) lw $ra -4($fp) lw $fp -8($fp) addu $sp $sp 64 jr $ra _print: li $v0 1 # syscall: print integer syscall la $a0 _newline li $v0 4 # syscall: print string syscall jr $ra _error: li $v0 4 # syscall: print string syscall li $v0 10 # syscall: exit syscall _heapAlloc: li $v0 9 # syscall: sbrk syscall jr $ra .data .align 0 _newline: .asciiz "\n" _str0: .asciiz "null pointer\n"