diff options
Diffstat (limited to 'output/MoreThan4.s')
-rw-r--r-- | output/MoreThan4.s | 306 |
1 files changed, 306 insertions, 0 deletions
diff --git a/output/MoreThan4.s b/output/MoreThan4.s new file mode 100644 index 0000000..7fe496f --- /dev/null +++ b/output/MoreThan4.s @@ -0,0 +1,306 @@ +.data +functable_MT4: + MT4_Start + MT4_Change +.text +jal Main +li $v0 10 +syscall +Main: + sw $fp -8($sp) + move $fp $sp + subu $sp $sp 76 + 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 8 + jal _heapAlloc + move $s7 $v0 + la $t9 functable_MT4 + sw $t9 0($s7) + move $s6 $s7 + move $s7 $s6 + lw $s6 0($s7) + lw $s5 0($s6) + li $s6 1 + move $s4 $s6 + li $s6 2 + move $s3 $s6 + li $s6 3 + move $s2 $s6 + li $s6 4 + move $s1 $s6 + li $s6 5 + move $s0 $s6 + li $s6 6 + move $t7 $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 + move $a1 $s4 + move $a2 $s3 + move $a3 $s2 + sw $s1 -76($fp) + sw $s0 -72($fp) + sw $t7 -68($fp) + 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 $t7 $s6 + move $s6 $t7 + 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 76 + jr $ra +MT4_Start: + sw $fp -8($sp) + move $fp $sp + subu $sp $sp 76 + 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 + move $s3 $a3 + lw $s4 0($fp) + lw $s1 4($fp) + lw $s2 8($fp) + move $s0 $s6 + move $t7 $s0 + move $s0 $t7 + move $a0 $s0 + jal _print + move $s0 $s7 + move $t7 $s0 + move $s0 $t7 + move $a0 $s0 + jal _print + move $s0 $s3 + move $t7 $s0 + move $s0 $t7 + move $a0 $s0 + jal _print + move $s0 $s4 + move $t7 $s0 + move $s0 $t7 + move $a0 $s0 + jal _print + move $s0 $s1 + move $t7 $s0 + move $s0 $t7 + move $a0 $s0 + jal _print + move $s0 $s2 + move $t7 $s0 + move $s0 $t7 + move $a0 $s0 + jal _print + move $s0 $s5 + lw $s0 0($s5) + move $t7 $s2 + move $s2 $t7 + move $t7 $s1 + move $s1 $t7 + move $t7 $s4 + move $s4 $t7 + move $t7 $s3 + move $s3 $t7 + move $t7 $s7 + move $s7 $t7 + move $t7 $s6 + move $s6 $t7 + lw $s0 0($s0) + 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 + move $a1 $s2 + move $a2 $s1 + move $a3 $s4 + sw $s3 -76($fp) + sw $s7 -72($fp) + sw $s6 -68($fp) + jalr $s0 + 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 $t7 $v0 + move $s6 $t7 + move $t7 $s6 + move $s6 $t7 + move $t7 $s6 + move $s6 $t7 + move $v0 $s6 + 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 76 + jr $ra +MT4_Change: + 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 + move $s3 $a3 + lw $s4 0($fp) + lw $s1 4($fp) + lw $s2 8($fp) + move $s0 $s6 + move $s5 $s0 + move $s0 $s5 + move $a0 $s0 + jal _print + move $s0 $s7 + move $s7 $s0 + move $s0 $s7 + move $a0 $s0 + jal _print + move $s0 $s3 + move $s3 $s0 + move $s0 $s3 + move $a0 $s0 + jal _print + move $s0 $s4 + move $s4 $s0 + move $s0 $s4 + move $a0 $s0 + jal _print + move $s0 $s1 + move $s1 $s0 + move $s0 $s1 + move $a0 $s0 + jal _print + move $s0 $s2 + move $s2 $s0 + move $s0 $s2 + move $a0 $s0 + jal _print + li $s0 0 + move $s2 $s0 + move $s0 $s2 + move $v0 $s0 + 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 + add $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" |