.text main: load_branch: addi $t9, $zero, 1 sw $t9, 96($zero) lw $t9, 96($zero) beq $t9, $zero, fail_all beq $zero, $zero, dual_forward dual_forward: addi $t8, $t9, 0 add $t8, $t8, $t9 beq $t8, $zero, fail_all beq $zero, $zero, store_value store_value: addi $s7, $t8, 0 add $s7, $s7, $t9 sw $s7, 96($zero) lw $s7, 96($zero) beq $s7, $zero, fail_all beq $zero, $zero, store_addr store_addr: addi $t0, $zero, 96 addi $s6, $s7, 0 add $s6, $s6, $t9 sw $s6, 0($t0) lw $s6, 96($zero) beq $s6, $zero, fail_all beq $zero, $zero, load_addr load_addr: addi $t1, $zero, 96 lw $s5, 0($t1) add $s5, $s5, $t9 sw $s5, 96($zero) beq $s5, $zero, fail_all beq $zero, $zero, load_chain load_chain: lw $s4, 96($zero) add $s4, $s4, $t9 sw $s4, 96($zero) lw $s4, 96($zero) beq $s4, $zero, fail_all beq $zero, $zero, store_load store_load: addi $s3, $s4, 0 sw $s3, 96($zero) lw $s3, 96($zero) add $s3, $s3, $t9 beq $s3, $zero, fail_all beq $zero, $zero, lui_ori lui_ori: lui $s2, 0 ori $s2, $s2, 1 add $s2, $s2, $s3 sw $s2, 96($zero) lw $s2, 96($zero) beq $s2, $zero, fail_all beq $zero, $zero, slt_branch slt_branch: addi $t2, $zero, 10 addi $t3, $zero, 5 slt $s1, $t3, $t2 add $s1, $s1, $s2 beq $s1, $zero, fail_all beq $zero, $zero, multi_branch multi_branch: addi $t4, $zero, 0 beq $t4, $zero, br1 beq $zero, $zero, fail_all br1: addi $t5, $zero, 1 beq $t5, $t9, br2 beq $zero, $zero, fail_all br2: beq $zero, $zero, br3 beq $zero, $zero, fail_all br3: add $s0, $s1, $t9 beq $s0, $zero, fail_all beq $zero, $zero, forward_chain forward_chain: addi $t6, $s0, 0 add $t7, $t6, $t9 add $t6, $t7, $t9 add $t5, $t6, $t9 beq $t5, $zero, fail_all beq $zero, $zero, load_branch_use load_branch_use: sw $t5, 96($zero) lw $t4, 96($zero) beq $zero, $zero, cont1 beq $zero, $zero, fail_all cont1: add $t4, $t4, $t9 beq $t4, $zero, fail_all beq $zero, $zero, store_both store_both: addi $t0, $zero, 96 add $t3, $t4, $t9 sw $t3, 0($t0) lw $t3, 96($zero) beq $t3, $zero, fail_all beq $zero, $zero, nested_load nested_load: sw $t3, 96($zero) lw $t2, 96($zero) add $t2, $t2, $t9 sw $t2, 96($zero) lw $t2, 96($zero) beq $t2, $zero, fail_all beq $zero, $zero, waw waw: addi $t1, $zero, 5 addi $t1, $t2, 0 add $t1, $t1, $t9 beq $t1, $zero, fail_all beq $zero, $zero, load_store_addr load_store_addr: addi $t0, $zero, 96 sw $t1, 0($t0) lw $t0, 96($zero) add $t0, $t0, $t9 beq $t0, $zero, fail_all beq $zero, $zero, branch_data branch_data: add $a3, $t0, $t9 beq $a3, $zero, fail_all add $a2, $a3, $t9 beq $zero, $zero, load_store_load addi $a2, $a2, -5 load_store_load: sw $a2, 96($zero) lw $a2, 96($zero) add $a2, $a2, $t9 sw $a2, 96($zero) addi $a2, $a2, -1 lw $a1, 96($zero) beq $a1, $zero, fail_all beq $zero, $zero, and_forward and_forward: addi $k0, $zero, 0xff and $a0, $a1, $k0 add $a0, $a0, $t9 beq $a0, $zero, fail_all beq $zero, $zero, ori_forward ori_forward: lui $v1, 0 ori $v1, $v1, 1 add $v1, $v1, $a0 beq $v1, $zero, fail_all beq $zero, $zero, load_alu_store load_alu_store: sw $v1, 96($zero) lw $v0, 96($zero) add $v0, $v0, $t9 beq $v0, $zero, fail_all beq $zero, $zero, verify_all verify_all: beq $v0, $zero, fail_all beq $v1, $zero, fail_all beq $a0, $zero, fail_all beq $a1, $zero, fail_all beq $a2, $zero, fail_all beq $a3, $zero, fail_all beq $t0, $zero, fail_all beq $t1, $zero, fail_all beq $t2, $zero, fail_all beq $t3, $zero, fail_all beq $t4, $zero, fail_all beq $t5, $zero, fail_all beq $t7, $zero, fail_all beq $s0, $zero, fail_all beq $s1, $zero, fail_all beq $s2, $zero, fail_all beq $s3, $zero, fail_all beq $s4, $zero, fail_all beq $s5, $zero, fail_all beq $s6, $zero, fail_all beq $s7, $zero, fail_all beq $t8, $zero, fail_all beq $t9, $zero, fail_all beq $zero, $zero, finalize_memory fail_all: addi $v0, $zero, 1 addi $v1, $zero, 1 addi $a0, $zero, 1 addi $a1, $zero, 1 addi $a2, $zero, 1 addi $a3, $zero, 1 addi $t0, $zero, 1 addi $t1, $zero, 1 addi $t2, $zero, 1 addi $t3, $zero, 1 addi $t4, $zero, 1 addi $t5, $zero, 1 addi $t6, $zero, 1 addi $t7, $zero, 1 addi $s0, $zero, 1 addi $s1, $zero, 1 addi $s2, $zero, 1 addi $s3, $zero, 1 addi $s4, $zero, 1 addi $s5, $zero, 1 addi $s6, $zero, 1 addi $s7, $zero, 1 addi $t8, $zero, 1 addi $t9, $zero, 1 beq $zero, $zero, end finalize_memory: sw $t9, 0($zero) lw $k0, 0($zero) add $k0, $k0, $t9 sw $k0, 4($zero) lw $k1, 4($zero) add $k1, $k1, $t9 sw $k1, 8($zero) lw $k0, 8($zero) add $k0, $k0, $t9 sw $k0, 12($zero) lw $k1, 12($zero) add $k1, $k1, $t9 sw $k1, 16($zero) lw $k0, 16($zero) add $k0, $k0, $t9 sw $k0, 20($zero) lw $k1, 20($zero) add $k1, $k1, $t9 sw $k1, 24($zero) lw $k0, 24($zero) add $k0, $k0, $t9 sw $k0, 28($zero) lw $k1, 28($zero) add $k1, $k1, $t9 sw $k1, 32($zero) lw $k0, 32($zero) add $k0, $k0, $t9 sw $k0, 36($zero) lw $k1, 36($zero) add $k1, $k1, $t9 sw $k1, 40($zero) lw $k0, 40($zero) add $k0, $k0, $t9 sw $k0, 44($zero) lw $k1, 44($zero) add $k1, $k1, $t9 sw $k1, 48($zero) lw $k0, 48($zero) add $k0, $k0, $t9 sw $k0, 52($zero) lw $k1, 52($zero) add $k1, $k1, $t9 sw $k1, 56($zero) lw $k0, 56($zero) add $k0, $k0, $t9 sw $k0, 60($zero) lw $k1, 60($zero) add $k1, $k1, $t9 sw $k1, 64($zero) lw $k0, 64($zero) add $k0, $k0, $t9 sw $k0, 68($zero) lw $k1, 68($zero) add $k1, $k1, $t9 sw $k1, 72($zero) lw $k0, 72($zero) add $k0, $k0, $t9 sw $k0, 76($zero) lw $k1, 76($zero) add $k1, $k1, $t9 sw $k1, 80($zero) lw $k0, 80($zero) add $k0, $k0, $t9 sw $k0, 84($zero) lw $k1, 84($zero) add $k1, $k1, $t9 sw $k1, 88($zero) lw $k0, 88($zero) add $k0, $k0, $t9 sw $k0, 92($zero) lw $k1, 92($zero) sw $k1, 96($zero) end: beq $zero, $zero, end # ANSWER # $zero = 0 # $at = ?? # $v0 = 24 # $v1 = 23 # $a0 = 22 # $a1 = 21 # $a2 = 20 # $a3 = 19 # $t0 = 18 # $t1 = 17 # $t2 = 16 # $t3 = 15 # $t4 = 14 # $t5 = 13 # $t6 = 12 # $t7 = 11 # $s0 = 10 # $s1 = 9 # $s2 = 8 # $s3 = 7 # $s4 = 6 # $s5 = 5 # $s6 = 4 # $s7 = 3 # $t8 = 2 # $t9 = 1 # $k0 = ?? # $k1 = ?? # $gp = ?? # $sp = ?? # $fp = ?? # $ra = ?? # mem[0] = 1 # mem[4] = 2 # mem[8] = 3 # mem[12] = 4 # mem[16] = 5 # mem[20] = 6 # mem[24] = 7 # mem[28] = 8 # mem[32] = 9 # mem[36] = 10 # mem[40] = 11 # mem[44] = 12 # mem[48] = 13 # mem[52] = 14 # mem[56] = 15 # mem[60] = 16 # mem[64] = 17 # mem[68] = 18 # mem[72] = 19 # mem[76] = 20 # mem[80] = 21 # mem[84] = 22 # mem[88] = 23 # mem[92] = 24 # mem[96] = 24