[0x00000000] 0x20000001 addi $0, $0, 1 ; 8: addi $0, $0, 1 # R0 had better still be 0 [0x00000004] 0x0000c022 sub $24, $0, $0 ; 14: sub $24, $0, $0 # r24 = 0 [0x00000008] 0x20020001 addi $2, $0, 1 ; 15: addi $2, $0, 1 # r2=1 [0x0000000c] 0x2003ffff addi $3, $0, -1 ; 16: addi $3, $0, -1 # r3=-1 [0x00000010] 0x00622020 add $4, $3, $2 ; 17: add $4, $3, $2 # r4=0 (no exceptions) [0x00000014] 0x306500ff andi $5, $3, 255 ; 18: andi $5, $3, 255 # r5=255=0x000000FF [0x00000018] 0x00a23021 addu $6, $5, $2 ; 19: addu $6, $5, $2 # r6=256=0x00000100 [0x0000001c] 0x24c70300 addiu $7, $6, 768 ; 20: addiu $7, $6, 768 # r7=1024=0x00000400 [0x00000020] 0x00e64023 subu $8, $7, $6 ; 21: subu $8, $7, $6 # r8=768=0x00000300 [0x00000024] 0x34095555 ori $9, $0, 21845 ; 23: ori $9, $0, 21845 # r9=21845=0x00005555 [0x00000028] 0x01204825 or $9, $9, $0 ; 24: or $9, $9, $0 # r9=21845=0x00005555 =unchanged [0x0000002c] 0x01234824 and $9, $9, $3 ; 25: and $9, $9, $3 # r9=21845=0x00005555 =unchanged [0x00000030] 0x01205027 nor $10, $9, $0 ; 26: nor $10, $9, $0 # r10=-21846=0xFFFFAAAA [0x00000034] 0x014a5826 xor $11, $10, $10 ; 27: xor $11, $10, $10 # r11=0 =0x00000000 [0x00000038] 0x392cfff2 xori $12, $9, -14 ; 28: xori $12, $9, 65522 # r12=0x0000AAA7 [0x0000003c] 0x00096a00 sll $13, $9, 8 ; 30: sll $13, $9, 8 # r13=5592320=0x00555500 [0x00000040] 0x00427004 sllv $14, $2, $2 ; 31: sllv $14, $2, $2 # r14=2 =0x00000002 [0x00000044] 0x000a7942 srl $15, $10, 5 ; 32: srl $15, $10, 5 # r15=134217045=0x07fffD55 [0x00000048] 0x00498006 srlv $16, $9, $2 ; 33: srlv $16, $9, $2 # r16=10922=0x00002AAA [0x0000004c] 0x01f00018 mult $15, $16 ; 34: mult $15, $16 # {hi,lo} = 0x7fffd55 * 0x2aaa [0x00000050] 0x00007810 mfhi $15 ; 35: mfhi $15 # r15 = 0x00000155 [0x00000054] 0x00008012 mflo $16 ; 36: mflo $16 # r16 = 0x4f8e2c72 [0x00000058] 0x020f001a div $16, $15 ; 37: div $16, $15 # hi = 0x4f8e2c72 mod 0x155, lo = 0x4f8e2c72 / 0x155 [0x0000005c] 0x00007810 mfhi $15 ; 38: mfhi $15 # r15 = 0x000000f7 [0x00000060] 0x00008012 mflo $16 ; 39: mflo $16 # r16 = 0x003bb98f [0x00000064] 0x00a00011 mthi $5 ; 40: mthi $5 # use hi and lo to swap registers r5 and r6 [0x00000068] 0x00c00013 mtlo $6 ; 41: mtlo $6 [0x0000006c] 0x00003010 mfhi $6 ; 42: mfhi $6 # r6 = =0x000000FF [0x00000070] 0x00002812 mflo $5 ; 43: mflo $5 # r5 = 0x000000100 [0x00000074] 0x00038903 sra $17, $3, 4 ; 44: sra $17, $3, 4 # r17=-1=0xFFFFFFFF [0x00000078] 0x01c99007 srav $18, $9, $14 ; 45: srav $18, $9, $14 # r18=5461=0x00001555 [0x0000007c] 0x0129982a slt $19, $9, $9 ; 46: slt $19, $9, $9 # r19=0=0x00000000 [0x00000080] 0x00a6a02a slt $20, $5, $6 ; 47: slt $20, $5, $6 # r20=0=0x00000000 [0x00000084] 0x0083a82b sltu $21, $4, $3 ; 48: sltu $21, $4, $3 # r21=1=0x00000001 [0x00000088] 0x2c760000 sltiu $22, $3, 0 ; 49: sltiu $22, $3, 0 # r22=0=0x00000000 [0x0000008c] 0x20170000 addi $23, $0, 0 ; 54: addi $23,$0,0 # set register 23 to zero [0x00000090] 0x08000026 j 0x00000098 [jumpok] ; 55: j jumpok [0x00000094] 0x2017ffff addi $23, $0, -1 ; 56: addi $23,$0,-1 # -1 in r23 means jump failed [0x00000098] 0x20180000 addi $24, $0, 0 ; 58: addi $24,$0,0 # initialize register 24 to zero [0x0000009c] 0x0c10002a jal 0x000000a8 [jalok] ; 59: jal jalok # this is taken w/$31 = PC [0x000000a0] 0x23180001 addi $24, $24, 1 ; 60: addi $24,$24,1 # should not come here after jal, but will after jalr below [0x000000a4] 0x0800002c j 0x000000b0 [out] ; 61: j out# [0x000000a8] 0x20180064 addi $24, $0, 100 ; 63: addi $24,$0,100 # re-init $24 to 100 [0x000000ac] 0x03e0f809 jalr $31, $31 ; 64: jalr $31 # now jump back 3 instructions [0x000000b0] 0x10630001 beq $3, $3, 4 [taken-0x000000b0]; 72: beq $3,$3 taken # taken branch: PC moves ahead by 8 [0x000000b4] 0x0800002d j 0x000000b4 [stuck] ; 73: j stuck # don't execute this instruction [0x000000b8] 0x1062fffe beq $3, $2, -8 [stuck-0x000000b8]; 74: beq $3, $2, stuck # no take branch (failures get stuck) [0x000000bc] 0x14620001 bne $3, $2, 4 [taken1-0x000000bc]; 76: bne $3,$2 taken1 # taken branch: PC moves ahead by 8 [0x000000c0] 0x08000030 j 0x000000c0 [stuck1] ; 77: j stuck1 # don't execute this instruction [0x000000c4] 0x1463fffe bne $3, $3, -8 [stuck1-0x000000c4]; 78: bne $3, $3, stuck1 # no take branch (failures get stuck) [0x000000c8] 0x04600001 bltz $3 4 [taken2-0x000000c8] ; 80: bltz $3, taken2 # taken branch: PC moves ahead by 8 [0x000000cc] 0x08000033 j 0x000000cc [stuck2] ; 81: j stuck2 # don't execute this instruction [0x000000d0] 0x0440fffb bltz $2 -20 [stuck1-0x000000d0] ; 82: bltz $2, stuck1 # no take branch (failures get stuk) [0x000000d4] 0x18000001 blez $0 4 [taken3-0x000000d4] ; 84: blez $0, taken3 # taken branch: PC moves ahead by 8 [0x000000d8] 0x08000036 j 0x000000d8 [stuck3] ; 85: j stuck3 # don't execute this instruction [0x000000dc] 0x1840fffe blez $2 -8 [stuck3-0x000000dc] ; 86: blez $2, stuck3 # no take branch (failures get stuck) [0x000000e0] 0x18600001 blez $3 4 [taken4-0x000000e0] ; 88: blez $3, taken4 # taken branch: PC moves ahead by 8 [0x000000e4] 0x08000039 j 0x000000e4 [stuck4] ; 89: j stuck4 # don't execute this instruction [0x000000e8] 0x1840fffe blez $2 -8 [stuck4-0x000000e8] ; 90: blez $2, stuck4 # no take branch (failures get stuck) [0x000000ec] 0x04700001 bltzal $3 4 [taken5-0x000000ec] ; 92: bltzal $3, taken5 # taken branch: PC moves ahead by 8 [0x000000f0] 0x08000040 j 0x00000100 [stuck6] ; 93: j stuck6 # don't execute this instruction [0x000000f4] 0x0450fffe bltzal $2 -8 [stuck5-0x000000f4]; 94: bltzal $2, stuck5 # no take branch (failures get stuck); [0x000000f8] 0x001fc820 add $25, $0, $31 ; 95: add $25,$0,$31 # link address in r25 [0x000000fc] 0x1c400001 bgtz $2 4 [taken6-0x000000fc] ; 97: bgtz $2, taken6 # taken branch: PC moves ahead by 8 [0x00000100] 0x08000040 j 0x00000100 [stuck6] ; 98: j stuck6 # don't execute this instruction [0x00000104] 0x1c60fffe bgtz $3 -8 [stuck6-0x00000104] ; 99: bgtz $3, stuck6 # no take branch (failures get stuck) [0x00000108] 0x04010001 bgez $0 4 [taken7-0x00000108] ; 101: bgez $0, taken7 # taken branch: PC moves ahead by 8 [0x0000010c] 0x08000043 j 0x0000010c [stuck7] ; 102: j stuck7 # don't execute this instruction [0x00000110] 0x0461fffe bgez $3 -8 [stuck7-0x00000110] ; 103: bgez $3, stuck7 # no take branch (failures get stuck) [0x00000114] 0x04410001 bgez $2 4 [taken8-0x00000114] ; 105: bgez $2, taken8 # taken branch: PC moves ahead by 8 [0x00000118] 0x08000046 j 0x00000118 [stuck8] ; 106: j stuck8 # don't execute this instruction [0x0000011c] 0x0461fffe bgez $3 -8 [stuck8-0x0000011c] ; 107: bgez $3, stuck8 # no take branch (failures get stuck) [0x00000120] 0x04510001 bgezal $2 4 [taken9-0x00000120] ; 109: bgezal $2, taken9 # taken branch: PC moves ahead by 8 [0x00000124] 0x08000049 j 0x00000124 [stuck9] ; 110: j stuck9 # don't execute this instruction [0x00000128] 0x0471fffe bgezal $3 -8 [stuck9-0x00000128]; 111: bgezal $3, stuck9 # no take branch (failures get stuck); [0x0000012c] 0x001fd020 add $26, $0, $31 ; 112: add $26,$0,$31 # link address in r26 [0x00000130] 0xac110004 sw $17, 4($0) ; 117: sw $17,4($0) [0x00000134] 0xa411000a sh $17, 10($0) ; 118: sh $17,10($0) [0x00000138] 0xa011000b sb $17, 11($0) ; 119: sb $17,11($0) [0x0000013c] 0x8c190004 lw $25, 4($0) ; 121: lw $25,4($0) # r25 = 0xffffffff [0x00000140] 0x941a0004 lhu $26, 4($0) ; 122: lhu $26,4($0) # r26 = 0x0000ffff [0x00000144] 0x901b0004 lbu $27, 4($0) ; 123: lbu $27,4($0) # r27 = 0x000000ff [0x00000148] 0x841c0004 lh $28, 4($0) ; 124: lh $28,4($0) # r28 = 0xffffffff [0x0000014c] 0x801d0004 lb $29, 4($0) ; 125: lb $29,4($0) # r29 = 0xffffffff [0x00000150] 0x0000f022 sub $30, $0, $0 ; 127: sub $30,$0,$0 # r30 = 0 [0x00000154] 0x3c010002 lui $1, 2 ; 128: lui $1, 2 # r1 = 0x00020000 [0x00000158] 0xafc10000 sw $1, 0($30) ; 133: sw $1, 0($30) [0x0000015c] 0x23de0004 addi $30, $30, 4 ; 134: addi $30,$30,4 [0x00000160] 0xafc20000 sw $2, 0($30) ; 135: sw $2, 0($30) [0x00000164] 0x23de0004 addi $30, $30, 4 ; 136: addi $30,$30,4 [0x00000168] 0xafc30000 sw $3, 0($30) ; 137: sw $3, 0($30) [0x0000016c] 0x23de0004 addi $30, $30, 4 ; 138: addi $30,$30,4 [0x00000170] 0xafc40000 sw $4, 0($30) ; 139: sw $4, 0($30) [0x00000174] 0x23de0004 addi $30, $30, 4 ; 140: addi $30,$30,4 [0x00000178] 0xafc50000 sw $5, 0($30) ; 141: sw $5, 0($30) [0x0000017c] 0x23de0004 addi $30, $30, 4 ; 142: addi $30,$30,4 [0x00000180] 0xafc60000 sw $6, 0($30) ; 143: sw $6, 0($30) [0x00000184] 0x23de0004 addi $30, $30, 4 ; 144: addi $30,$30,4 [0x00000188] 0xafc70000 sw $7, 0($30) ; 145: sw $7, 0($30) [0x0000018c] 0x23de0004 addi $30, $30, 4 ; 146: addi $30,$30,4 [0x00000190] 0xafc80000 sw $8, 0($30) ; 147: sw $8, 0($30) [0x00000194] 0x23de0004 addi $30, $30, 4 ; 148: addi $30,$30,4 [0x00000198] 0xafc90000 sw $9, 0($30) ; 149: sw $9, 0($30) [0x0000019c] 0x23de0004 addi $30, $30, 4 ; 150: addi $30,$30,4 [0x000001a0] 0xafca0000 sw $10, 0($30) ; 151: sw $10, 0($30) [0x000001a4] 0x23de0004 addi $30, $30, 4 ; 152: addi $30,$30,4 [0x000001a8] 0xafcb0000 sw $11, 0($30) ; 153: sw $11, 0($30) [0x000001ac] 0x23de0004 addi $30, $30, 4 ; 154: addi $30,$30,4 [0x000001b0] 0xafcc0000 sw $12, 0($30) ; 155: sw $12, 0($30) [0x000001b4] 0x23de0004 addi $30, $30, 4 ; 156: addi $30,$30,4 [0x000001b8] 0xafcd0000 sw $13, 0($30) ; 157: sw $13, 0($30) [0x000001bc] 0x23de0004 addi $30, $30, 4 ; 158: addi $30,$30,4 [0x000001c0] 0xafce0000 sw $14, 0($30) ; 159: sw $14, 0($30) [0x000001c4] 0x23de0004 addi $30, $30, 4 ; 160: addi $30,$30,4 [0x000001c8] 0xafcf0000 sw $15, 0($30) ; 161: sw $15, 0($30) [0x000001cc] 0x23de0004 addi $30, $30, 4 ; 162: addi $30,$30,4 [0x000001d0] 0xafd00000 sw $16, 0($30) ; 163: sw $16, 0($30) [0x000001d4] 0x23de0004 addi $30, $30, 4 ; 164: addi $30,$30,4 [0x000001d8] 0xafd10000 sw $17, 0($30) ; 165: sw $17, 0($30) [0x000001dc] 0x23de0004 addi $30, $30, 4 ; 166: addi $30,$30,4 [0x000001e0] 0xafd20000 sw $18, 0($30) ; 167: sw $18, 0($30) [0x000001e4] 0x23de0004 addi $30, $30, 4 ; 168: addi $30,$30,4 [0x000001e8] 0xafd30000 sw $19, 0($30) ; 169: sw $19, 0($30) [0x000001ec] 0x23de0004 addi $30, $30, 4 ; 170: addi $30,$30,4 [0x000001f0] 0xafd40000 sw $20, 0($30) ; 171: sw $20, 0($30) [0x000001f4] 0x23de0004 addi $30, $30, 4 ; 172: addi $30,$30,4 [0x000001f8] 0xafd50000 sw $21, 0($30) ; 173: sw $21, [0x000001fc] 0x23de0004 addi $30, $30, 4 ; 174: addi $30,$30,4 [0x00000200] 0xafd60000 sw $22, 0($30) ; 175: sw $22, 0($30) [0x00000204] 0x23de0004 addi $30, $30, 4 ; 176: addi $30,$30,4 [0x00000208] 0xafd70000 sw $23, 0($30) ; 177: sw $23, 0($30) [0x0000020c] 0x23de0004 addi $30, $30, 4 ; 178: addi $30,$30,4 [0x00000210] 0xafd80000 sw $24, 0($30) ; 179: sw $24, 0($30) [0x00000214] 0x23de0004 addi $30, $30, 4 ; 180: addi $30,$30,4 [0x00000218] 0xafd90000 sw $25, 0($30) ; 181: sw $25, 0($30) [0x0000021c] 0x23de0004 addi $30, $30, 4 ; 182: addi $30,$30,4 [0x00000220] 0xafda0000 sw $26, 0($30) ; 183: sw $26, 0($30) [0x00000224] 0x23de0004 addi $30, $30, 4 ; 184: addi $30,$30,4 [0x00000228] 0xafdb0000 sw $27, 0($30) ; 185: sw $27, 0($30) [0x0000022c] 0x23de0004 addi $30, $30, 4 ; 186: addi $30,$30,4 [0x00000230] 0xafdc0000 sw $28, 0($30) ; 187: sw $28, 0($30) [0x00000234] 0x23de0004 addi $30, $30, 4 ; 188: addi $30,$30,4 [0x00000238] 0xafdd0000 sw $29, 0($30) ; 189: sw $29, 0($30) [0x0000023c] 0x23de0004 addi $30, $30, 4 ; 190: addi $30,$30,4 [0x00000240] 0x0000f820 add $31, $0, $0 ; 192: add$31,$0,$0 [0x00000244] 0x03e00008 jr $31 ; 193: jr $31