################################################################################ ## ## LSU EE 4720 Spring 2021 Homework 2 -- SOLUTION - Faster ## ## # Assignment https://www.ece.lsu.edu/ee4720/2021/hw02.pdf # Solution Writeup https://www.ece.lsu.edu/ee4720/2021/hw02_sol.pdf ################################################################################ ## Problem 1 # .text hdecode: ## Register Usage # # CALL VALUES # $a0: Unused # $a1: Bit position to start at. # $a2: Address to write decoded data. # # RETURN # $a1: Bit position following encoded piece. # $a2: Address following decoded piece. # $v0: Address of leaf of huff tree. # $v1: Address of dict entry or value of literal character. # # Note: # Can modify registers $t0-$t9, $a0-$a3, $v0, $v1. # DO NOT modify other registers. # # [✔] The testbench should show 0 errors. # [✔] Code should be reasonably efficient. # [✔] The code should be clearly written. # [✔] Comments should be written for an experienced programmer. # [✔] Do not use pseudoinstructions except for nop and la. ## SOLUTION - Faster # Load the word of compressed text that has the next bit we need. # srl $t4, $a1, 5 # Determine word index of next word to read. sll $t6, $t4, 2 # Determine byte offset of next word to read. la $t5, huff_compressed_text_start add $t6, $t6, $t5 # Compute address of next word to read. lw $t8, 0($t6) # Read next word of compressed text. # Shift the next bit into the most-significant position of $t8. # andi $t7, $a1, 0x1f # Determine bit number of next bit to examine. sllv $t8, $t8, $t7 # Put needed bit into most-significant position. # It's possible that we'll examine all the bits in t8, at # which time the next word needs to be loaded. To check # whether this has occurred set $t9 to the bit number of the # first bit in the next word. # sll $t9, $t4, 5 # Compute bit number at which a new word .. addi $t9, $t9, 0x20 # .. will need to be loaded. la $t3, huff_tree addi $v0, $t3, -2 # Compensate for crossing left-child code below. TREE_LOOP_L: # Descend to Left Child. (Except in first iteration.) # addi $v0, $v0, 2 TREE_LOOP: # Live Registers at This Point in Code # # $t3: Address of root of huff tree. # $v0: Address of current node. # # $a1: Bit number of next bit (of compressed text) to examine. # $t8: Compressed text. The next bit to examine is the MSB. # $t9: Bit number at which the next word must be loaded into t8. # $t6: Address of the current word of compressed text. # # $a2: Address at which to write next decoded character. # Load value of current node into $v1 # lhu $v1, 0($v0) # First check for a non-leaf node, since that's most common. # addi $t4, $v1, -128 # Compute index of right child. sltiu $t5, $t4, 0x6f80 # Note: Unsigned comparison. bne $t5, $0, NOT_LEAF sll $t7, $t4, 1 # Compute byte offset of right child. # The node is a leaf. Check if it's a character or dictionary # entry and branch to the respective code. # bltz $t4, CHAR_LEAF sb $v1, 0($a2) # Write the character just in case. j DICT_LEAF addi $t4, $v1, -0x7000 NOT_LEAF: # Current node is an internal (non-leaf) node, so: # - Get next bit of compressed text. # - Based on the value of that bit descend to left or right child. # Check whether we already have the bit we need. # bne $a1, $t9, EXAMINE_NEXT_BIT addi $a1, $a1, 1 # Load next word of compressed text. # addi $t6, $t6, 4 # Update address .. lw $t8, 0($t6) # No more bits, load a new word. addi $t9, $t9, 0x20 # .. and overflow value. EXAMINE_NEXT_BIT: # Note: Next bit is in the MSB of t8. The bgez $t8 is taken if # the MSB of $t8 is zero. # bgez $t8, TREE_LOOP_L sll $t8, $t8, 1 # Shift left so that next bit is in MSB pos. RCHILD: # Descend to Right Child. # # Register $t7 already contains the byte offset. Just add it # to the root to get the address of the right child. # j TREE_LOOP add $v0, $t3, $t7 CHAR_LEAF: # Node is a leaf. Its value is a character to append. # # Note: char already written by sb above. # jr $ra # .. and we're done .. addi $a2, $a2, 1 # .. after we increment the pointer. DICT_LEAF: # Node is a leaf. Its value is a byte offset into dictionary. # la $t0, huff_dictionary add $v1, $t4, $t0 # Copy string from dictionary to output. lb $t5, 0($v1) addi $t4, $v1, 1 CPY_LOOP: sb $t5, 0($a2) addi $a2, $a2, 1 lb $t5, 0($t4) bne $t5, $0, CPY_LOOP addi $t4, $t4, 1 jr $ra nop ################################################################################ ## Testbench Routine # # .data msg_full_text: .asciiz "\nNumber correct %/s6/d, number wrong %/s5/d.\nDecoded Text:\n%/s0/s\n"; msg_piece_start: .asciiz "** Decoding of Bit Position %/a1/d **\n" msg_bit_pos_ok: .asciiz "End bit pos ($a1 contents) correct: %/a1/d.\n" msg_bit_pos_bad: .asciiz "End bit pos ($a1 contents) wrong: %/a1/d correct value is %/t0/d.\n" msg_leaf_addr_ok: .asciiz "Leaf address ($v0 contents) correct: %/t4/#x.\n" msg_leaf_addr_bad: .asciiz "Leaf address ($v0 contents) wrong: %/t4/#x correct value is %/t1/#x.\n" msg_dict_addr_ok: .asciiz "Dict address ($v1 contents) correct: %/v1/#x Entry: \"%/v1/s\".\n" msg_dict_addr_bad: .asciiz "Dict address ($v1 contents) wrong: %/v1/#x correct value is %/t3/#x.\n" msg_char_val_ok: .asciiz "Char value ($v1 contents) correct: \"%/v1/c\"\n" msg_char_val_bad: .asciiz "Char value ($v1 contents) wrong: %/v1/d (decimal) correct value is %/t3/d (decimal) or \"%/t3/c\".\n" msg_char_copied_wrong: .asciiz "Char value correct, \"%/v1/c\", but not copied, found \"%/$t4/\".\n" msg_copied_bad: .asciiz "Text copied incorrectly starting at character %/t6/d: \"%/t7/s\"\n" msg_early_exit: .asciiz "** Error limit exceeded, exiting early.\n"; msg_timing: .ascii "\nTotal insn %/s2/d, encoded bits %/t0/d, uncompressed bytes %/t1/d.\n" .asciiz "Efficiency: %/f0/4.1f insn/bit %/f2/4.1f insn/byte.\n" tb_timing_data: .word 0 # Instruction count. .word 0 # Sum of bits examined. .word 0 # Sum of characters in decoded text. .text .globl __start __start: la $s3, huff_debug_samples addi $t0, $0, 0 la $a2, uncompressed addi $s2, $0, 0 # Total number of instructions. addi $s6, $0, 0 # Number correct addi $s7, $0, 0 # Number checked TLOOP: addi $s7, $s7, 1 lw $a1, 0($s3) la $a0, msg_piece_start addi $v0, $0, 11 syscall nop addi $s4, $a2, 0 jal hdecode mfc0 $s1, $9 # Number of insns before hdecode. mfc0 $t1, $9 # Number of insns after hdecode. addi $t1, $t1, -1 sub $s1, $t1, $s1 # Number of insns executed by hdecode. add $s2, $s2, $s1 sb $0, 0($a2) addi $s0, $a0, 0 addi $t4, $v0, 0 lw $t0, 4($s3) # Bit end lw $t1, 8($s3) # Byte offset into huff tree. lw $t3, 12($s3) # Byte offset into dictionary. # Compute and store total compressed bits and decompressed bytes. # lw $t2, 0($s3) sub $t2, $t0, $t2 la $a0, tb_timing_data lw $t5, 4($a0) # Number of compressed bits. add $t5, $t5, $t2 sw $t5, 4($a0) lw $t5, 8($a0) # Total number of decompressed bytes. lw $t2, 16($s3) # Number of bytes in this piece. add $t5, $t5, $t2 sw $t5, 8($a0) # Check ending compressed-text bit position. # la $a0, msg_bit_pos_ok beq $t0, $a1, TBIT_SHOW nop la $a0, msg_bit_pos_bad TBIT_SHOW: addi $v0, $0, 11 syscall nop # Check address of huff tree leaf. # la $t2, huff_tree add $t1, $t1, $t2 la $a0, msg_leaf_addr_ok beq $t1, $t4, TLEAF_SHOW nop la $a0, msg_leaf_addr_bad TLEAF_SHOW: syscall nop slti $t4, $v1, 128 bne $t4, $0, TCHAR_CHECK # Check address of dictionary entry. # la $t2, huff_dictionary add $t3, $t3, $t2 la $a0, msg_dict_addr_ok beq $v1, $t3, TDICT_SHOW nop la $a0, msg_dict_addr_bad TDICT_SHOW: syscall nop bne $v1, $t3, TCHECK_NEXT nop addi $t6, $t3, 0 addi $t7, $s4, 0 TCHECK_WORD_LOOP: lbu $t4, 0($s4) lbu $t5, 0($t3) bne $t4, $t5, TCHECK_WORD_WRONG addi $s4, $s4, 1 bne $t5, $0, TCHECK_WORD_LOOP addi $t3, $t3, 1 # Word copied correctly. addi $s6, $s6, 1 j TCHECK_NEXT nop TCHECK_WORD_WRONG: la $a0, msg_copied_bad sub $t6, $t3, $t6 syscall nop j TCHECK_NEXT nop # Check value of decoded character. # TCHAR_CHECK: beq $v1, $t3, TCHAR_SHOW nop la $a0, msg_char_val_bad syscall nop j TCHECK_NEXT nop TCHAR_SHOW: # Check whether character copied correctly. lbu $t4, 0($s4) bne $t4, $v1, TCHAR_COPIED_WRONG nop # Character correct. addi $s6, $s6, 1 la $a0, msg_char_val_ok syscall nop j TCHECK_NEXT nop TCHAR_COPIED_WRONG: la $a0, msg_char_copied_wrong syscall nop TCHECK_NEXT: # Exit loop if error threshold exceeded. # sub $s5, $s7, $s6 slti $t1, $s5, 3 bne $t1, $0, TCHECK_CONTINUE nop la $a0, msg_early_exit syscall nop j TLOOP_EXIT nop TCHECK_CONTINUE: # Advance to next piece. # addi $s3, $s3, 20 la $t0, huff_compressed_text_start slt $t1, $s3, $t0 bne $t1, $0 TLOOP nop ## ## End of Loop TLOOP_EXIT: # Compute number of incorrect pieces. # sub $s5, $s7, $s6 # Show execution rate. # la $a0, msg_timing la $t4, tb_timing_data lw $t0, 4($t4) lw $t1, 8($t4) mtc1 $s2, $f20 cvt.d.w $f22, $f20 mtc1 $t0, $f10 cvt.d.w $f12, $f10 mtc1 $t1, $f14 cvt.d.w $f16, $f14 div.d $f0, $f22, $f12 div.d $f2, $f22, $f16 addi $v0, $0, 11 syscall nop # Show decoded text. # la $a0, msg_full_text la $s0, uncompressed addi $v0, $0, 11 syscall nop addi $v0, $0, 10 syscall nop .data .align 4 uncompressed: .space 4000 uncompressed_end: # Data from file histo-bare.s # Code size 14253 + 1679 + 5176 = 21108 orig 40784 b, ratio 0.518 max 11 # Words 188 Codes 188 Resorts 10 # Compression Debug Samples # # Encoding: .word BIT_START, BIT_END, TREE_POS, DICT_POS, FRAG_LENGTH # huff_debug_samples: # 0: 0 11011 -> "\n" .word 0, 5, 0x2ea, 0xa, 1; # 0: 5 001011 -> " ." .word 5, 11, 0x2a, 0x16, 9; # 0:11 0110011000 -> "text" .word 11, 21, 0x14c, 0x1af, 4; # 0:21 11011 -> "\n" .word 21, 26, 0x2ea, 0xa, 1; # 0:26 011010010 -> "histo" .word 26, 35, 0x166, 0xc5, 5; # 1: 3 1000100 -> ":\n" .word 35, 42, 0x1de, 0x28, 2; # 1:10 11011 -> "\n" .word 42, 47, 0x2ea, 0xa, 1; # 1:15 10101 -> " " .word 47, 52, 0x21c, 0, 8; # 1:20 1101000 -> "addi" .word 52, 59, 0x2b4, 0x23, 4; # 1:27 01111 -> " $" .word 59, 64, 0x1c2, 0x9, 2; # 2: 0 10011 -> "s" .word 64, 69, 0x1f0, 0x73, 1; # 2: 5 000011 -> "1" .word 69, 75, 0x18, 0x31, 1; # 2:11 00100 -> ", $" .word 75, 80, 0x24, 0xf, 3; # 2:16 00010 -> "r" .word 80, 85, 0x1c, 0x72, 1; # 2:21 01000 -> "a" .word 85, 90, 0x48, 0x61, 1; # 2:26 00111 -> ", " .word 90, 95, 0x40, 0xc, 2; # 2:31 110000 -> "0" .word 95, 101, 0x24c, 0x30, 1; # 3: 5 101001000 -> " # " .word 101, 110, 0x204, 0x9d, 6; # 3:14 0101100111 -> "Make" .word 110, 120, 0x7c, 0x218, 4; # 3:24 111 -> " " .word 120, 123, 0x2ec, 0x20, 1; # 3:27 01000 -> "a" .word 123, 128, 0x48, 0x61, 1; # 4: 0 111 -> " " .word 128, 131, 0x2ec, 0x20, 1; # 4: 3 0101110110 -> "copy" .word 131, 141, 0xb8, 0x1ca, 4; # 4:13 111 -> " " .word 141, 144, 0x2ec, 0x20, 1; # 4:16 0011001 -> "of" .word 144, 151, 0x34, 0x37, 2; # 4:23 111 -> " " .word 151, 154, 0x2ec, 0x20, 1; # 4:26 10111010 -> "the" .word 154, 162, 0x23e, 0x43, 3; # 5: 2 111 -> " " .word 162, 165, 0x2ec, 0x20, 1; # 5: 5 0101110000 -> "return" .word 165, 175, 0xa4, 0x1d6, 6; # 5:15 111 -> " " .word 175, 178, 0x2ec, 0x20, 1; # 5:18 101110011 -> "address" .word 178, 187, 0x23a, 0x74, 7; # 5:27 1100010 -> ".\n" .word 187, 194, 0x250, 0x20, 2; # 6: 2 10101 -> " " .word 194, 199, 0x21c, 0, 8; # 6: 7 1101010010 -> "jal" .word 199, 209, 0x2c6, 0x197, 3; # 6:17 111 -> " " .word 209, 212, 0x2ec, 0x20, 1; # 6:20 011011101 -> "upper" .word 212, 221, 0x19e, 0xcb, 5; # 6:29 111 -> " " .word 221, 224, 0x2ec, 0x20, 1; # 7: 0 111 -> " " .word 224, 227, 0x2ec, 0x20, 1; # 7: 3 111 -> " " .word 227, 230, 0x2ec, 0x20, 1; # 7: 6 111 -> " " .word 230, 233, 0x2ec, 0x20, 1; # 7: 9 111 -> " " .word 233, 236, 0x2ec, 0x20, 1; # 7:12 111 -> " " .word 236, 239, 0x2ec, 0x20, 1; # 7:15 111 -> " " .word 239, 242, 0x2ec, 0x20, 1; # 7:18 111 -> " " .word 242, 245, 0x2ec, 0x20, 1; # 7:21 111 -> " " .word 245, 248, 0x2ec, 0x20, 1; # 7:24 111 -> " " .word 248, 251, 0x2ec, 0x20, 1; # 7:27 111 -> " " .word 251, 254, 0x2ec, 0x20, 1; # 7:30 0101010 -> "#" .word 254, 261, 0x58, 0x23, 1; # 8: 5 111 -> " " .word 261, 264, 0x2ec, 0x20, 1; # 8: 8 0110110001 -> "Convert" .word 264, 274, 0x182, 0x27d, 7; # 8:18 111 -> " " .word 274, 277, 0x2ec, 0x20, 1; # 8:21 10110010 -> "to" .word 277, 285, 0x228, 0x4d, 2; # 8:29 111 -> " " .word 285, 288, 0x2ec, 0x20, 1; # 9: 0 011011101 -> "upper" .word 288, 297, 0x19e, 0xcb, 5; # 9: 9 111 -> " " .word 297, 300, 0x2ec, 0x20, 1; # 9:12 1011000 -> "c" .word 300, 307, 0x224, 0x63, 1; # 9:19 01000 -> "a" .word 307, 312, 0x48, 0x61, 1; # 9:24 10011 -> "s" .word 312, 317, 0x1f0, 0x73, 1; # 9:29 10010 -> "e" .word 317, 322, 0x1ee, 0x65, 1; # 10: 2 1100010 -> ".\n" .word 322, 329, 0x250, 0x20, 2; # 10: 9 10101 -> " " .word 329, 334, 0x21c, 0, 8; # 10:14 1101000 -> "addi" .word 334, 341, 0x2b4, 0x23, 4; # 10:21 01111 -> " $" .word 341, 346, 0x1c2, 0x9, 2; # 10:26 10011 -> "s" .word 346, 351, 0x1f0, 0x73, 1; # 10:31 110000 -> "0" .word 351, 357, 0x24c, 0x30, 1; # 11: 5 00100 -> ", $" .word 357, 362, 0x24, 0xf, 3; # 11:10 0101001 -> "a0" .word 362, 369, 0x54, 0x31, 2; # 11:17 00111 -> ", " .word 369, 374, 0x40, 0xc, 2; # 11:22 110000 -> "0" .word 374, 380, 0x24c, 0x30, 1; # 11:28 101001000 -> " # " .word 380, 389, 0x204, 0x9d, 6; # 12: 5 0101100111 -> "Make" .word 389, 399, 0x7c, 0x218, 4; # 12:15 111 -> " " .word 399, 402, 0x2ec, 0x20, 1; # 12:18 01000 -> "a" .word 402, 407, 0x48, 0x61, 1; # 12:23 111 -> " " .word 407, 410, 0x2ec, 0x20, 1; # 12:26 0101110110 -> "copy" .word 410, 420, 0xb8, 0x1ca, 4; # 13: 4 111 -> " " .word 420, 423, 0x2ec, 0x20, 1; # 13: 7 0011001 -> "of" .word 423, 430, 0x34, 0x37, 2; # 13:14 111 -> " " .word 430, 433, 0x2ec, 0x20, 1; # 13:17 01100111 -> "string" .word 433, 441, 0x156, 0x5f, 6; # 13:25 111 -> " " .word 441, 444, 0x2ec, 0x20, 1; # 13:28 0101101101 -> "start" .word 444, 454, 0x94, 0x238, 5; # 14: 6 111 -> " " .word 454, 457, 0x2ec, 0x20, 1; # 14: 9 101110011 -> "address" .word 457, 466, 0x23a, 0x74, 7; # 14:18 1100010 -> ".\n" .word 466, 473, 0x250, 0x20, 2; # 14:25 10101 -> " " .word 473, 478, 0x21c, 0, 8; # 14:30 1101000 -> "addi" .word 478, 485, 0x2b4, 0x23, 4; # 15: 5 01111 -> " $" .word 485, 490, 0x1c2, 0x9, 2; # 15:10 0101001 -> "a0" .word 490, 497, 0x54, 0x31, 2; # 15:17 00100 -> ", $" .word 497, 502, 0x24, 0xf, 3; # 15:22 10011 -> "s" .word 502, 507, 0x1f0, 0x73, 1; # 15:27 110000 -> "0" .word 507, 513, 0x24c, 0x30, 1; # 16: 1 00111 -> ", " .word 513, 518, 0x40, 0xc, 2; # 16: 6 110000 -> "0" .word 518, 524, 0x24c, 0x30, 1; # 16:12 101001000 -> " # " .word 524, 533, 0x204, 0x9d, 6; # 16:21 0110011011 -> "R" .word 533, 543, 0x154, 0x52, 1; # 16:31 10010 -> "e" .word 543, 548, 0x1ee, 0x65, 1; # 17: 4 10011 -> "s" .word 548, 553, 0x1f0, 0x73, 1; # 17: 9 01001 -> "t" .word 553, 558, 0x4a, 0x74, 1; # 17:14 101111 -> "o" .word 558, 564, 0x242, 0x6f, 1; # 17:20 00010 -> "r" .word 564, 569, 0x1c, 0x72, 1; # 17:25 10010 -> "e" .word 569, 574, 0x1ee, 0x65, 1; # 17:30 111 -> " " .word 574, 577, 0x2ec, 0x20, 1; # 18: 1 01100111 -> "string" .word 577, 585, 0x156, 0x5f, 6; # 18: 9 111 -> " " .word 585, 588, 0x2ec, 0x20, 1; # 18:12 0101101101 -> "start" .word 588, 598, 0x94, 0x238, 5; # 18:22 111 -> " " .word 598, 601, 0x2ec, 0x20, 1; # 18:25 101110011 -> "address" .word 601, 610, 0x23a, 0x74, 7; # 19: 2 1100010 -> ".\n" .word 610, 617, 0x250, 0x20, 2; # 19: 9 111 -> " " .word 617, 620, 0x2ec, 0x20, 1; # 19:12 111 -> " " .word 620, 623, 0x2ec, 0x20, 1; # 19:15 111 -> " " .word 623, 626, 0x2ec, 0x20, 1; # 19:18 111 -> " " .word 626, 629, 0x2ec, 0x20, 1; # 19:21 111 -> " " .word 629, 632, 0x2ec, 0x20, 1; # 19:24 111 -> " " .word 632, 635, 0x2ec, 0x20, 1; # 19:27 111 -> " " .word 635, 638, 0x2ec, 0x20, 1; # 19:30 111 -> " " .word 638, 641, 0x2ec, 0x20, 1; # 20: 1 11011 -> "\n" .word 641, 646, 0x2ea, 0xa, 1; # 20: 6 1101010100 -> "LOOP" .word 646, 656, 0x2ce, 0x179, 4; # 20:16 1000100 -> ":\n" .word 656, 663, 0x1de, 0x28, 2; # 20:23 10101 -> " " .word 663, 668, 0x21c, 0, 8; # 20:28 101101 -> "l" .word 668, 674, 0x22c, 0x6c, 1; # 21: 2 11001101 -> "b" .word 674, 682, 0x29a, 0x62, 1; # 21:10 01111 -> " $" .word 682, 687, 0x1c2, 0x9, 2; # 21:15 0011000 -> "t0" .word 687, 694, 0x32, 0x3a, 2; # 21:22 00111 -> ", " .word 694, 699, 0x40, 0xc, 2; # 21:27 110000 -> "0" .word 699, 705, 0x24c, 0x30, 1; # 22: 1 10111000 -> "($" .word 705, 713, 0x234, 0x4a, 2; # 22: 9 0101001 -> "a0" .word 713, 720, 0x54, 0x31, 2; # 22:16 0101101001 -> ") # " .word 720, 730, 0x86, 0x24f, 9; # 22:26 1100101101 -> "Load" .word 730, 740, 0x28c, 0x156, 4; # 23: 4 111 -> " " .word 740, 743, 0x2ec, 0x20, 1; # 23: 7 1100101010 -> "next" .word 743, 753, 0x282, 0x174, 4; # 23:17 111 -> " " .word 753, 756, 0x2ec, 0x20, 1; # 23:20 110101111 -> "character" .word 756, 765, 0x2e8, 0x82, 9; # 23:29 1100010 -> ".\n" .word 765, 772, 0x250, 0x20, 2; # 24: 4 10101 -> " " .word 772, 777, 0x21c, 0, 8; # 24: 9 101001001 -> "beq" .word 777, 786, 0x206, 0x99, 3; # 24:18 01111 -> " $" .word 786, 791, 0x1c2, 0x9, 2; # 24:23 0011000 -> "t0" .word 791, 798, 0x32, 0x3a, 2; # 24:30 00100 -> ", $" .word 798, 803, 0x24, 0xf, 3; # 25: 3 110000 -> "0" .word 803, 809, 0x24c, 0x30, 1; # 25: 9 00111 -> ", " .word 809, 814, 0x40, 0xc, 2; # 25:14 0101101010 -> "DONE" .word 814, 824, 0x8a, 0x262, 4; # 25:24 0101110111 -> " # " .word 824, 834, 0xba, 0x1c4, 5; # 26: 2 01100011000 -> "J" .word 834, 845, 0x126, 0x4a, 1; # 26:13 1010001 -> "u" .word 845, 852, 0x1fc, 0x75, 1; # 26:20 1100011 -> "m" .word 852, 859, 0x252, 0x6d, 1; # 26:27 0101011 -> "p" .word 859, 866, 0x5a, 0x70, 1; # 27: 2 111 -> " " .word 866, 869, 0x2ec, 0x20, 1; # 27: 5 0101111101 -> "out" .word 869, 879, 0xd2, 0x1e8, 3; # 27:15 111 -> " " .word 879, 882, 0x2ec, 0x20, 1; # 27:18 0011001 -> "of" .word 882, 889, 0x34, 0x37, 2; # 27:25 111 -> " " .word 889, 892, 0x2ec, 0x20, 1; # 27:28 101101 -> "l" .word 892, 898, 0x22c, 0x6c, 1; # 28: 2 101111 -> "o" .word 898, 904, 0x242, 0x6f, 1; # 28: 8 101111 -> "o" .word 904, 910, 0x242, 0x6f, 1; # 28:14 0101011 -> "p" .word 910, 917, 0x5a, 0x70, 1; # 28:21 111 -> " " .word 917, 920, 0x2ec, 0x20, 1; # 28:24 00000 -> "i" .word 920, 925, 0xa, 0x69, 1; # 28:29 1101001 -> "f" .word 925, 932, 0x2b6, 0x66, 1; # 29: 4 111 -> " " .word 932, 935, 0x2ec, 0x20, 1; # 29: 7 01000 -> "a" .word 935, 940, 0x48, 0x61, 1; # 29:12 01001 -> "t" .word 940, 945, 0x4a, 0x74, 1; # 29:17 111 -> " " .word 945, 948, 0x2ec, 0x20, 1; # 29:20 10010 -> "e" .word 948, 953, 0x1ee, 0x65, 1; # 29:25 00011 -> "n" .word 953, 958, 0x1e, 0x6e, 1; # 29:30 1000010 -> "d" .word 958, 965, 0x1d6, 0x64, 1; # 30: 5 111 -> " " .word 965, 968, 0x2ec, 0x20, 1; # 30: 8 0011001 -> "of" .word 968, 975, 0x34, 0x37, 2; # 30:15 111 -> " " .word 975, 978, 0x2ec, 0x20, 1; # 30:18 01100111 -> "string" .word 978, 986, 0x156, 0x5f, 6; # 30:26 1100010 -> ".\n" .word 986, 993, 0x250, 0x20, 2; # 31: 1 10101 -> " " .word 993, 998, 0x21c, 0, 8; # 31: 6 1101000 -> "addi" .word 998, 1005, 0x2b4, 0x23, 4; # 31:13 01111 -> " $" .word 1005, 1010, 0x1c2, 0x9, 2; # 31:18 0101001 -> "a0" .word 1010, 1017, 0x54, 0x31, 2; # 31:25 00100 -> ", $" .word 1017, 1022, 0x24, 0xf, 3; # 31:30 0101001 -> "a0" .word 1022, 1029, 0x54, 0x31, 2; # 32: 5 00111 -> ", " .word 1029, 1034, 0x40, 0xc, 2; # 32:10 000011 -> "1" .word 1034, 1040, 0x18, 0x31, 1; # 32:16 101001000 -> " # " .word 1040, 1049, 0x204, 0x9d, 6; # 32:25 11001100 -> "I" .word 1049, 1057, 0x298, 0x49, 1; # 33: 1 00011 -> "n" .word 1057, 1062, 0x1e, 0x6e, 1; # 33: 6 1011000 -> "c" .word 1062, 1069, 0x224, 0x63, 1; # 33:13 00010 -> "r" .word 1069, 1074, 0x1c, 0x72, 1; # 33:18 10010 -> "e" .word 1074, 1079, 0x1ee, 0x65, 1; # 33:23 1100011 -> "m" .word 1079, 1086, 0x252, 0x6d, 1; # 33:30 10010 -> "e" .word 1086, 1091, 0x1ee, 0x65, 1; # 34: 3 00011 -> "n" .word 1091, 1096, 0x1e, 0x6e, 1; # 34: 8 01001 -> "t" .word 1096, 1101, 0x4a, 0x74, 1; # 34:13 111 -> " " .word 1101, 1104, 0x2ec, 0x20, 1; # 34:16 10110010 -> "to" .word 1104, 1112, 0x228, 0x4d, 2; # 34:24 111 -> " " .word 1112, 1115, 0x2ec, 0x20, 1; # 34:27 101110011 -> "address" .word 1115, 1124, 0x23a, 0x74, 7; # 35: 4 111 -> " " .word 1124, 1127, 0x2ec, 0x20, 1; # 35: 7 0011001 -> "of" .word 1127, 1134, 0x34, 0x37, 2; # 35:14 111 -> " " .word 1134, 1137, 0x2ec, 0x20, 1; # 35:17 1100101010 -> "next" .word 1137, 1147, 0x282, 0x174, 4; # 35:27 111 -> " " .word 1147, 1150, 0x2ec, 0x20, 1; # 35:30 110101111 -> "character" .word 1150, 1159, 0x2e8, 0x82, 9; # # Huffman Compressed Text # huff_compressed_text_start: .word 0xd96cc6da, 0x51375d0f, 0x9864120f, 0x852167e8, 0xebb733ee .word 0xbae1ee78, 0xaba976ef, 0xfffffffd, 0x576c7d97, 0x6efb089c .word 0xb15743e7, 0x81149f0a, 0x42cfd1d7, 0x6e67b3f5, 0xb7dcf157 .word 0x43d49278, 0x1f0a4337, 0x29a6f14b, 0xb3f5b7dc, 0xf17fffff .word 0xef54895b, 0x735e60f8, 0x5c295a72, 0xdf957d7e, 0x2ad25e60 .word 0x981d6a5d, 0xd8c51c6a, 0xfafbccfb, 0x6fbd5f06, 0x9e84f90e .word 0x1733d9f1, 0x5743d491, 0x49c3a466, 0xec0a58e, 0x434fb2f7 .word 0x3e67e55f, 0x5f8aba1e, 0x60863206, 0x1c873ad5, 0xe49798f6 .word 0x5ee5dbd7, 0x7eb3b718, 0x1c0ed460, 0x433c9361, 0x61aced48 .word 0x28bf3c86, 0xf41873a, 0xccd2f31c, 0x13ed836d, 0xe830f5eb .word 0x812e27d9, 0xae8f6c92, 0x99096fad, 0x25f9e4c0, 0xfaa7fd57 .word 0x75ded7f3, 0xbf9524fb, 0xaf957d59, 0xdfac60b7, 0xa65e88e6 .word 0x287285e, 0xc6356b0d, 0x676daf30, 0x4307a1ff, 0xfd57d5ec .word 0x22d976f7, 0xe6a27285, 0xef1fb97c, 0xa3cc1964, 0xbeb21eb5 .word 0xddd72e7d, 0xd910190c, 0x2ef16bf1, 0xaba2997b, 0x9f33ee5f .word 0x28c55b42, 0xbe33e171, 0x76b4e5be, 0xe5f2877b, 0x1945b465 .word 0xc13eab99, 0xe906394f, 0xeade7290, 0xf15743e3, 0x24670e91 .word 0x9349c0a5, 0xe7290065, 0x7bafab74, 0x14800cf3, 0xbfe5df27 .word 0x5beb4bfa, 0xa6eb30af, 0x8cf85c5d, 0xeb7ffff5, 0x5dd77b5f .word 0xcd378a5e, 0xebae3f35, 0x16355e01, 0xfbaf72c5, 0xb5aa2569 .word 0x627cc3ff, 0xffffffff, 0xd57667d1, 0x980657ba, 0xf3459ca1 .word 0x75c3dcf1, 0x5699bdef, 0x38ce574e, 0xcddf4520, 0x1cb6ab6a .word 0xbf8b22db, 0x67e08269, 0xbca1231f, 0x562bca12, 0x31fd634b .word 0x5bd7aeac, 0x401a67ee, 0x58956f79, 0x1660d5d1, 0x4f67eb47 .word 0x4ca6900c, 0xaed2c412, 0x5c24251b, 0x6ca21703, 0xb9b1b6fa .word 0xd1638c05, 0x88315622, 0xd836cc51, 0x83b16626, 0xd11b9fea .word 0xbae9e77e, 0x3975f694, 0x6694240c, 0xa97b1050, 0x24584c85 .word 0x3c45c0ee, 0x6d11a82e, 0x1b5faff, 0xaefc97ad, 0x7c09ede7 .word 0xb2f17eb0, 0x75b94170, 0xde57e2f, 0xc09f2458, 0x83c602a0 .word 0xa7b5fc24, 0x1a282e01, 0xbccf92fc, 0xc718fb35, 0xc28af194 .word 0xbc260827, 0xf4ca5680, 0x65389f2a, 0x494806e3, 0xcd22bc65 .word 0x484a0b80, 0x6f24f6de, 0x32a423e6, 0x79a5069d, 0x15068a0 .word 0xb806f530, 0x4e7d3065, 0x8fe3be73, 0xf62fb390, 0xa50bd980 .word 0x729eb975, 0xd28b6df3, 0xa25205d5, 0x80729a82, 0xe01bc9a0 .word 0xc852f8ef, 0xb1aa806e, 0x3e68050a, 0x7db3f65e, 0x60194a0b .word 0x806f2bf9, 0x8e217b41, 0xaacbd979, 0xca5f51f6, 0xa32c34fa .word 0x9827304e, 0x6056ac1a, 0xe41a2211, 0xa006e380, 0x69bfcd58 .word 0x80329417, 0x3292e01, 0xbc93e3be, 0xf1da02a0, 0xa7de3f75 .word 0xf350697d, 0x175d75d7, 0x5d751ec0, 0xa57db2e9, 0xa2393aeb .word 0xaefd47e9, 0x5b6cfdd, 0x74004a0b, 0x806f33c2, 0x14918d78 .word 0x466df453, 0xf1a0a1df, 0x68113e01, 0xfcdb6fbf, 0x1baebaeb .word 0xaeb5fe63, 0x8c7c2827, 0x403f99c, 0x2a27d665, 0x5c0ca4b .word 0x806d7ebf, 0xebbf25eb, 0x5f027b79, 0xecbc5f8e, 0x417de2b6 .word 0x481cd417, 0xde4d06, 0x43fa8b89, 0xf0b06429, 0x7d77db2d .word 0x29e697d1, 0x17832409, 0x2a0b806f, 0x2beb3389, 0xfc9fa608 .word 0x657c778, 0xa5ae03c5, 0xfdd7c9fe, 0x67b0814b, 0xad0a0b80 .word 0x6f53bc52, 0xe98281fc, 0xcf17eb07, 0x5b941703, 0x292d7cee .word 0x74aa578a, 0xbe8827db, 0x82c7348a, 0xf194a378, 0xe65442d7 .word 0xc371524a, 0x642e10cb, 0x9ecb63fb, 0x17d11a69, 0xbc219636 .word 0x5a742fac, 0x865d30d, 0x9585da1a, 0x420235bc, 0x2195390b .word 0x2cda2373, 0x62fbd968, 0xb4050fc3, 0xdea110b5, 0xcb87843d .word 0xe7710b5c, 0xbc3c37b5, 0xd62170af, 0xa39b6cbe, 0x5eee19d6 .word 0x49ec5e39, 0xa5034fcb, 0xced9fb2f, 0x383785ea, 0xe42b121a .word 0x678b7b2d, 0x98d9655b, 0x7e6dbd7b, 0xdaf712b6, 0xa1ea4ed9 .word 0x6eb6a1e8, 0xcfa86eb, 0xa1f19101, 0x9f0dd743, 0xeec919f2 .word 0xfdc553a2, 0x56615f81, 0xf0b88cd6, 0xb4f7c64b, 0xb3c553b7 .word 0x5d0f8c91, 0x9e1ef75b, 0x50f8cf9d, 0xeeba1f76, 0x48cf0f0d .word 0xd743f3c9, 0x81e1d0fd, 0x5770c19c, 0x6e2a1c4a, 0xcf35f9e7 .word 0xc2e2335a, 0xd3df192e, 0xcf150f75, 0xd0f8c919, 0xc3dd679a .word 0xfc0f85c4, 0x66bbaea5, 0xf23dd699, 0xbaac4fb3, 0xc09a686e .word 0xab63b09d, 0xafd3409, 0xa686eb6a, 0x1f9e75d7, 0x75b61580 .word 0xdfa619f0, 0xb8cf35ac, 0x2059bb09, 0xfa68134c, 0x3269a1bd .word 0xd752ed2d, 0xd699bae5, 0xcf304c09, 0x86eba1f9, 0xe4c0ec30 .word 0xf75d0f4c, 0x32679e83, 0xeeb6a1f, 0x30cfa86e, 0xba1f6781 .word 0x303861ee, 0xb6a1f3a0, 0x7cef75d0, 0xf9d024e8, 0x1e187b8a .word 0xa112b685, 0x7c67c2e2, 0x619ad743, 0xe6192619, 0xe1eeb497 .word 0xc64c0eb9, 0xeeba1f9e, 0x4cf387ba, 0xcc56bd2c, 0x248ce1ee .word 0xab23d390, 0x92740896, 0x1dd5627c, 0x64d386ea, 0xb63b09d0 .word 0xafd38134, 0xe1bae3a3, 0x6bb09fa6, 0x1934e04d, 0x3437558f .word 0x6b9c4ad3, 0xdf9e44c3, 0x3c550dd6, 0x99bdd743, 0xecf02607 .word 0xf0dd563, 0xdef79c67, 0x2dd726c7, 0xd9763cad, 0x5c85e2c8 .word 0x9cb7b6ec, 0x4c89bfeb, 0x2ec25914, 0xd37eb22c, 0x8b6dd6f6 .word 0xaf33d9fd, 0x97b178ec, 0xe424e209, 0x6452e4d5, 0xe67ebfb4 .word 0xfb431324, 0x6e4da769, 0xf686264b, 0xb728b5f8, 0xd5a0409d .word 0xe3eb8e20, 0x9ffffff5, 0x5d8d3124, 0x63576ca9, 0xbfb525a6 .word 0xf14a9bdc, 0xd0d475cf, 0xfff7ffff, 0xfeabffff, 0xfffedcd2 .word 0x990a9bfb, 0x9b71a8eb, 0x9edad12a, 0xbfbe33e1, 0x70a75bff .word 0xfffffaaf, 0x96fd7fd2, 0x2bf1f67c, 0x55d0f524, 0x5270f75a .word 0x4be32607, 0x6d7755e5, 0xf7648cec, 0x7d807fff, 0xffaaedf3 .word 0xb8438dd6, 0x9efbb261, 0xdadbaaf2, 0xfbb24670, 0xe853bfff .word 0xfeabb8cb, 0x1c763bc3, 0xdd692fbb, 0x26076b6e, 0xba1f1923 .word 0xc829d437, 0x5a5f6b6e, 0xb3cd7c6c, 0x12941dc2, 0x935db6b1 .word 0x2b4b13c4, 0x8dd699bd, 0xef38ce72, 0x372d5d22, 0xcaf152 .word 0x194983bd, 0xe4713226, 0xffacbb09, 0x6452e4d5, 0xe67e900a .word 0x69fafe67, 0xb3e264b3, 0xc1c999f6, 0x68b68c8f, 0x75ed90ca .word 0x4c1e67dd, 0x767c412c, 0x861c9b4e, 0xd3ed0c4c, 0x91b93579 .word 0x9f628885, 0x21a7ebfb, 0x4fb43104, 0xd743e322, 0x93e1b6de .word 0x2557f798, 0x3e17119a, 0xd69ef304, 0xc0edbeeb, 0xa1f19233 .word 0x87bdd743, 0xe3247900, 0x7bad2c4f, 0x12375591, 0xf6781232 .word 0x29d80000 huff_compressed_text_end: # Huffman Encoding Word Dictionary # huff_dictionary: .asciiz " " # Idx 0 Freq 81 Enc 10101 .asciiz " $" # Idx 9 Freq 71 Enc 01111 .asciiz ", " # Idx 12 Freq 57 Enc 00111 .asciiz ", $" # Idx 15 Freq 55 Enc 00100 .asciiz "t1" # Idx 19 Freq 38 Enc 100011 .asciiz " ." # Idx 22 Freq 28 Enc 001011 .asciiz ".\n" # Idx 32 Freq 24 Enc 1100010 .asciiz "addi" # Idx 35 Freq 24 Enc 1101000 .asciiz ":\n" # Idx 40 Freq 18 Enc 1000100 .asciiz "ascii" # Idx 43 Freq 18 Enc 1000000 .asciiz "a0" # Idx 49 Freq 15 Enc 0101001 .asciiz "\"\n" # Idx 52 Freq 15 Enc 0101000 .asciiz "of" # Idx 55 Freq 14 Enc 0011001 .asciiz "t0" # Idx 58 Freq 14 Enc 0011000 .asciiz " \"" # Idx 61 Freq 14 Enc 0011011 .asciiz "t2" # Idx 64 Freq 12 Enc 10111011 .asciiz "the" # Idx 67 Freq 12 Enc 10111010 .asciiz "t3" # Idx 71 Freq 12 Enc 11001111 .asciiz "($" # Idx 74 Freq 11 Enc 10111000 .asciiz "to" # Idx 77 Freq 10 Enc 10110010 .asciiz ": " # Idx 80 Freq 9 Enc 01110010 .asciiz " # $" # Idx 83 Freq 8 Enc 01100100 .asciiz "string" # Idx 95 Freq 8 Enc 01100111 .asciiz ")\n" # Idx 102 Freq 7 Enc 00110101 .asciiz " #\n" # Idx 105 Freq 7 Enc 00001001 .asciiz "address" # Idx 116 Freq 6 Enc 101110011 .asciiz "table" # Idx 124 Freq 6 Enc 101110010 .asciiz "character" # Idx 130 Freq 6 Enc 110101111 .asciiz "miss" # Idx 140 Freq 5 Enc 100010111 .asciiz "nop" # Idx 145 Freq 5 Enc 101001100 .asciiz "bne" # Idx 149 Freq 5 Enc 101001111 .asciiz "beq" # Idx 153 Freq 5 Enc 101001001 .asciiz " # " # Idx 157 Freq 5 Enc 101001000 .asciiz "Address" # Idx 164 Freq 4 Enc 011010101 .asciiz "and" # Idx 172 Freq 4 Enc 011010111 .asciiz "ULOOP" # Idx 176 Freq 4 Enc 011010110 .asciiz "examined" # Idx 182 Freq 4 Enc 011010000 .asciiz "being" # Idx 191 Freq 4 Enc 011010011 .asciiz "histo" # Idx 197 Freq 4 Enc 011010010 .asciiz "upper" # Idx 203 Freq 4 Enc 011011101 .asciiz "## " # Idx 209 Freq 3 Enc 1100111001 .asciiz "################################################################################\n" # Idx 213 Freq 3 Enc 1100111000 .asciiz "stars" # Idx 295 Freq 3 Enc 1100111011 .asciiz " # " # Idx 301 Freq 3 Enc 1100111010 .asciiz "know" # Idx 306 Freq 3 Enc 1100100101 .asciiz "The" # Idx 311 Freq 3 Enc 1100100100 .asciiz "one" # Idx 315 Freq 3 Enc 1100100111 .asciiz ", -" # Idx 319 Freq 3 Enc 1100100000 .asciiz "strlen" # Idx 323 Freq 3 Enc 1100100011 .asciiz " ## " # Idx 330 Freq 3 Enc 1100100010 .asciiz "Load" # Idx 342 Freq 3 Enc 1100101101 .asciiz "100" # Idx 347 Freq 3 Enc 1100101111 .asciiz "add" # Idx 351 Freq 3 Enc 1100101110 .asciiz " \"\"\n" # Idx 355 Freq 3 Enc 1100101001 .asciiz "element" # Idx 360 Freq 3 Enc 1100101000 .asciiz "And" # Idx 368 Freq 3 Enc 1100101011 .asciiz "next" # Idx 372 Freq 3 Enc 1100101010 .asciiz "LOOP" # Idx 377 Freq 3 Enc 1101010100 .asciiz "char" # Idx 382 Freq 3 Enc 1101010110 .asciiz "that" # Idx 387 Freq 3 Enc 1101010001 .asciiz "histogram_data" # Idx 392 Freq 3 Enc 1101010000 .asciiz "jal" # Idx 407 Freq 3 Enc 1101010010 .asciiz "you" # Idx 411 Freq 3 Enc 1101011101 .asciiz "..." # Idx 415 Freq 3 Enc 1101011100 .asciiz " -> " # Idx 419 Freq 2 Enc 0110000001 .asciiz "Return" # Idx 424 Freq 2 Enc 0110011001 .asciiz "text" # Idx 431 Freq 2 Enc 0110011000 .asciiz "not" # Idx 436 Freq 2 Enc 0110011010 .asciiz "TB_100" # Idx 440 Freq 2 Enc 0101110101 .asciiz "Test" # Idx 447 Freq 2 Enc 0101110100 .asciiz " # " # Idx 452 Freq 2 Enc 0101110111 .asciiz "copy" # Idx 458 Freq 2 Enc 0101110110 .asciiz "result" # Idx 463 Freq 2 Enc 0101110001 .asciiz "return" # Idx 470 Freq 2 Enc 0101110000 .asciiz "TEST" # Idx 477 Freq 2 Enc 0101110011 .asciiz "space" # Idx 482 Freq 2 Enc 0101110010 .asciiz "out" # Idx 488 Freq 2 Enc 0101111101 .asciiz "asciiz" # Idx 492 Freq 2 Enc 0101111100 .asciiz "lbu" # Idx 499 Freq 2 Enc 0101111111 .asciiz "slti" # Idx 503 Freq 2 Enc 0101111001 .asciiz "... " # Idx 508 Freq 2 Enc 0101111000 .asciiz "__start" # Idx 513 Freq 2 Enc 0101111011 .asciiz "then" # Idx 521 Freq 2 Enc 0101111010 .asciiz "Usage" # Idx 526 Freq 2 Enc 0101100101 .asciiz "sub" # Idx 532 Freq 2 Enc 0101100100 .asciiz "Make" # Idx 536 Freq 2 Enc 0101100111 .asciiz "there" # Idx 541 Freq 2 Enc 0101100110 .asciiz ".)\n" # Idx 547 Freq 2 Enc 0101100001 .asciiz "New" # Idx 551 Freq 2 Enc 0101100000 .asciiz "syscall" # Idx 555 Freq 2 Enc 0101100011 .asciiz "mtc1" # Idx 563 Freq 2 Enc 0101100010 .asciiz "start" # Idx 568 Freq 2 Enc 0101101101 .asciiz "cvt" # Idx 574 Freq 2 Enc 0101101100 .asciiz " ..\n" # Idx 578 Freq 2 Enc 0101101111 .asciiz "Orleans" # Idx 583 Freq 2 Enc 0101101110 .asciiz ") # " # Idx 591 Freq 2 Enc 0101101001 .asciiz "for" # Idx 601 Freq 2 Enc 0101101000 .asciiz "what" # Idx 605 Freq 2 Enc 0101101011 .asciiz "DONE" # Idx 610 Freq 2 Enc 0101101010 .asciiz "UDONE" # Idx 615 Freq 2 Enc 0110110101 .asciiz "Character" # Idx 621 Freq 2 Enc 0110110100 .asciiz "SLOOP" # Idx 631 Freq 2 Enc 0110110111 .asciiz "Convert" # Idx 637 Freq 2 Enc 0110110001 .asciiz "used" # Idx 645 Freq 2 Enc 0110110011 .asciiz "doi" # Idx 650 Freq 2 Enc 0110110010 .asciiz "index" # Idx 654 Freq 2 Enc 0110111101 .asciiz "means" # Idx 660 Freq 2 Enc 0110111100 .asciiz "Register" # Idx 666 Freq 2 Enc 0110111111 # Huffman Index Tree. # huff_tree_right_base: .half 0x80 # Base for right child index. huff_tree_literal_base: .half 0 # Base for literal. huff_tree_dictionary_base: .half 0x7000 # Base for dict. # Huffman Lookup Tree # huff_tree: .half 0x0162 # Tree Idx 0 Pointer to right child. .half 0x00a1 # Tree Idx 1 0 Pointer to right child. .half 0x0090 # Tree Idx 2 00 Pointer to right child. .half 0x008d # Tree Idx 3 000 Pointer to right child. .half 0x0086 # Tree Idx 4 0000 Pointer to right child. .half 0x0069 # Tree Idx 5 00000 Literal "i" .half 0x008c # Tree Idx 6 00001 Pointer to right child. .half 0x008b # Tree Idx 7 000010 Pointer to right child. .half 0x008a # Tree Idx 8 0000100 Pointer to right child. .half 0x0025 # Tree Idx 9 00001000 Literal "%" .half 0x7069 # Tree Idx 10 00001001 Dict Idx for " #\n" .half 0x0077 # Tree Idx 11 0000101 Literal "w" .half 0x0031 # Tree Idx 12 000011 Literal "1" .half 0x008f # Tree Idx 13 0001 Pointer to right child. .half 0x0072 # Tree Idx 14 00010 Literal "r" .half 0x006e # Tree Idx 15 00011 Literal "n" .half 0x0096 # Tree Idx 16 001 Pointer to right child. .half 0x0093 # Tree Idx 17 0010 Pointer to right child. .half 0x700f # Tree Idx 18 00100 Dict Idx for ", $" .half 0x0095 # Tree Idx 19 00101 Pointer to right child. .half 0x0067 # Tree Idx 20 001010 Literal "g" .half 0x7016 # Tree Idx 21 001011 Dict Idx for " ." .half 0x00a0 # Tree Idx 22 0011 Pointer to right child. .half 0x009b # Tree Idx 23 00110 Pointer to right child. .half 0x009a # Tree Idx 24 001100 Pointer to right child. .half 0x703a # Tree Idx 25 0011000 Dict Idx for "t0" .half 0x7037 # Tree Idx 26 0011001 Dict Idx for "of" .half 0x009f # Tree Idx 27 001101 Pointer to right child. .half 0x009e # Tree Idx 28 0011010 Pointer to right child. .half 0x0079 # Tree Idx 29 00110100 Literal "y" .half 0x7066 # Tree Idx 30 00110101 Dict Idx for ")\n" .half 0x703d # Tree Idx 31 0011011 Dict Idx for " \"" .half 0x700c # Tree Idx 32 00111 Dict Idx for ", " .half 0x00ed # Tree Idx 33 01 Pointer to right child. .half 0x00a6 # Tree Idx 34 010 Pointer to right child. .half 0x00a5 # Tree Idx 35 0100 Pointer to right child. .half 0x0061 # Tree Idx 36 01000 Literal "a" .half 0x0074 # Tree Idx 37 01001 Literal "t" .half 0x00ae # Tree Idx 38 0101 Pointer to right child. .half 0x00ab # Tree Idx 39 01010 Pointer to right child. .half 0x00aa # Tree Idx 40 010100 Pointer to right child. .half 0x7034 # Tree Idx 41 0101000 Dict Idx for "\"\n" .half 0x7031 # Tree Idx 42 0101001 Dict Idx for "a0" .half 0x00ad # Tree Idx 43 010101 Pointer to right child. .half 0x0023 # Tree Idx 44 0101010 Literal "#" .half 0x0070 # Tree Idx 45 0101011 Literal "p" .half 0x00ce # Tree Idx 46 01011 Pointer to right child. .half 0x00bf # Tree Idx 47 010110 Pointer to right child. .half 0x00b8 # Tree Idx 48 0101100 Pointer to right child. .half 0x00b5 # Tree Idx 49 01011000 Pointer to right child. .half 0x00b4 # Tree Idx 50 010110000 Pointer to right child. .half 0x7227 # Tree Idx 51 0101100000 Dict Idx for "New" .half 0x7223 # Tree Idx 52 0101100001 Dict Idx for ".)\n" .half 0x00b7 # Tree Idx 53 010110001 Pointer to right child. .half 0x7233 # Tree Idx 54 0101100010 Dict Idx for "mtc1" .half 0x722b # Tree Idx 55 0101100011 Dict Idx for "syscall" .half 0x00bc # Tree Idx 56 01011001 Pointer to right child. .half 0x00bb # Tree Idx 57 010110010 Pointer to right child. .half 0x7214 # Tree Idx 58 0101100100 Dict Idx for "sub" .half 0x720e # Tree Idx 59 0101100101 Dict Idx for "Usage" .half 0x00be # Tree Idx 60 010110011 Pointer to right child. .half 0x721d # Tree Idx 61 0101100110 Dict Idx for "there" .half 0x7218 # Tree Idx 62 0101100111 Dict Idx for "Make" .half 0x00c7 # Tree Idx 63 0101101 Pointer to right child. .half 0x00c4 # Tree Idx 64 01011010 Pointer to right child. .half 0x00c3 # Tree Idx 65 010110100 Pointer to right child. .half 0x7259 # Tree Idx 66 0101101000 Dict Idx for "for" .half 0x724f # Tree Idx 67 0101101001 Dict Idx for ") # " .half 0x00c6 # Tree Idx 68 010110101 Pointer to right child. .half 0x7262 # Tree Idx 69 0101101010 Dict Idx for "DONE" .half 0x725d # Tree Idx 70 0101101011 Dict Idx for "what" .half 0x00cb # Tree Idx 71 01011011 Pointer to right child. .half 0x00ca # Tree Idx 72 010110110 Pointer to right child. .half 0x723e # Tree Idx 73 0101101100 Dict Idx for "cvt" .half 0x7238 # Tree Idx 74 0101101101 Dict Idx for "start" .half 0x00cd # Tree Idx 75 010110111 Pointer to right child. .half 0x7247 # Tree Idx 76 0101101110 Dict Idx for "Orleans" .half 0x7242 # Tree Idx 77 0101101111 Dict Idx for " ..\n" .half 0x00de # Tree Idx 78 010111 Pointer to right child. .half 0x00d7 # Tree Idx 79 0101110 Pointer to right child. .half 0x00d4 # Tree Idx 80 01011100 Pointer to right child. .half 0x00d3 # Tree Idx 81 010111000 Pointer to right child. .half 0x71d6 # Tree Idx 82 0101110000 Dict Idx for "return" .half 0x71cf # Tree Idx 83 0101110001 Dict Idx for "result" .half 0x00d6 # Tree Idx 84 010111001 Pointer to right child. .half 0x71e2 # Tree Idx 85 0101110010 Dict Idx for "space" .half 0x71dd # Tree Idx 86 0101110011 Dict Idx for "TEST" .half 0x00db # Tree Idx 87 01011101 Pointer to right child. .half 0x00da # Tree Idx 88 010111010 Pointer to right child. .half 0x71bf # Tree Idx 89 0101110100 Dict Idx for "Test" .half 0x71b8 # Tree Idx 90 0101110101 Dict Idx for "TB_100" .half 0x00dd # Tree Idx 91 010111011 Pointer to right child. .half 0x71ca # Tree Idx 92 0101110110 Dict Idx for "copy" .half 0x71c4 # Tree Idx 93 0101110111 Dict Idx for " # " .half 0x00e6 # Tree Idx 94 0101111 Pointer to right child. .half 0x00e3 # Tree Idx 95 01011110 Pointer to right child. .half 0x00e2 # Tree Idx 96 010111100 Pointer to right child. .half 0x71fc # Tree Idx 97 0101111000 Dict Idx for "... " .half 0x71f7 # Tree Idx 98 0101111001 Dict Idx for "slti" .half 0x00e5 # Tree Idx 99 010111101 Pointer to right child. .half 0x7209 # Tree Idx 100 0101111010 Dict Idx for "then" .half 0x7201 # Tree Idx 101 0101111011 Dict Idx for "__start" .half 0x00ea # Tree Idx 102 01011111 Pointer to right child. .half 0x00e9 # Tree Idx 103 010111110 Pointer to right child. .half 0x71ec # Tree Idx 104 0101111100 Dict Idx for "asciiz" .half 0x71e8 # Tree Idx 105 0101111101 Dict Idx for "out" .half 0x00ec # Tree Idx 106 010111111 Pointer to right child. .half 0x0044 # Tree Idx 107 0101111110 Literal "D" .half 0x71f3 # Tree Idx 108 0101111111 Dict Idx for "lbu" .half 0x0159 # Tree Idx 109 011 Pointer to right child. .half 0x012c # Tree Idx 110 0110 Pointer to right child. .half 0x011f # Tree Idx 111 01100 Pointer to right child. .half 0x0100 # Tree Idx 112 011000 Pointer to right child. .half 0x00ff # Tree Idx 113 0110000 Pointer to right child. .half 0x00f8 # Tree Idx 114 01100000 Pointer to right child. .half 0x00f7 # Tree Idx 115 011000000 Pointer to right child. .half 0x00f6 # Tree Idx 116 0110000000 Pointer to right child. .half 0x0037 # Tree Idx 117 01100000000 Literal "7" .half 0x005f # Tree Idx 118 01100000001 Literal "_" .half 0x71a3 # Tree Idx 119 0110000001 Dict Idx for " -> " .half 0x00fc # Tree Idx 120 011000001 Pointer to right child. .half 0x00fb # Tree Idx 121 0110000010 Pointer to right child. .half 0x002c # Tree Idx 122 01100000100 Literal "," .half 0x004e # Tree Idx 123 01100000101 Literal "N" .half 0x00fe # Tree Idx 124 0110000011 Pointer to right child. .half 0x002a # Tree Idx 125 01100000110 Literal "*" .half 0x007c # Tree Idx 126 01100000111 Literal "|" .half 0x0036 # Tree Idx 127 01100001 Literal "6" .half 0x0110 # Tree Idx 128 0110001 Pointer to right child. .half 0x0109 # Tree Idx 129 01100010 Pointer to right child. .half 0x0106 # Tree Idx 130 011000100 Pointer to right child. .half 0x0105 # Tree Idx 131 0110001000 Pointer to right child. .half 0x0060 # Tree Idx 132 01100010000 Literal "`" .half 0x003f # Tree Idx 133 01100010001 Literal "?" .half 0x0108 # Tree Idx 134 0110001001 Pointer to right child. .half 0x0078 # Tree Idx 135 01100010010 Literal "x" .half 0x007e # Tree Idx 136 01100010011 Literal "~" .half 0x010d # Tree Idx 137 011000101 Pointer to right child. .half 0x010c # Tree Idx 138 0110001010 Pointer to right child. .half 0x007b # Tree Idx 139 01100010100 Literal "{" .half 0x0040 # Tree Idx 140 01100010101 Literal "@" .half 0x010f # Tree Idx 141 0110001011 Pointer to right child. .half 0x007d # Tree Idx 142 01100010110 Literal "}" .half 0x003b # Tree Idx 143 01100010111 Literal ";" .half 0x0118 # Tree Idx 144 01100011 Pointer to right child. .half 0x0115 # Tree Idx 145 011000110 Pointer to right child. .half 0x0114 # Tree Idx 146 0110001100 Pointer to right child. .half 0x004a # Tree Idx 147 01100011000 Literal "J" .half 0x0056 # Tree Idx 148 01100011001 Literal "V" .half 0x0117 # Tree Idx 149 0110001101 Pointer to right child. .half 0x0045 # Tree Idx 150 01100011010 Literal "E" .half 0x005b # Tree Idx 151 01100011011 Literal "[" .half 0x011c # Tree Idx 152 011000111 Pointer to right child. .half 0x011b # Tree Idx 153 0110001110 Pointer to right child. .half 0x005e # Tree Idx 154 01100011100 Literal "^" .half 0x002b # Tree Idx 155 01100011101 Literal "+" .half 0x011e # Tree Idx 156 0110001111 Pointer to right child. .half 0x0055 # Tree Idx 157 01100011110 Literal "U" .half 0x0039 # Tree Idx 158 01100011111 Literal "9" .half 0x0123 # Tree Idx 159 011001 Pointer to right child. .half 0x0122 # Tree Idx 160 0110010 Pointer to right child. .half 0x7053 # Tree Idx 161 01100100 Dict Idx for " # $" .half 0x002f # Tree Idx 162 01100101 Literal "/" .half 0x012b # Tree Idx 163 0110011 Pointer to right child. .half 0x0128 # Tree Idx 164 01100110 Pointer to right child. .half 0x0127 # Tree Idx 165 011001100 Pointer to right child. .half 0x71af # Tree Idx 166 0110011000 Dict Idx for "text" .half 0x71a8 # Tree Idx 167 0110011001 Dict Idx for "Return" .half 0x012a # Tree Idx 168 011001101 Pointer to right child. .half 0x71b4 # Tree Idx 169 0110011010 Dict Idx for "not" .half 0x0052 # Tree Idx 170 0110011011 Literal "R" .half 0x705f # Tree Idx 171 01100111 Dict Idx for "string" .half 0x013c # Tree Idx 172 01101 Pointer to right child. .half 0x0135 # Tree Idx 173 011010 Pointer to right child. .half 0x0132 # Tree Idx 174 0110100 Pointer to right child. .half 0x0131 # Tree Idx 175 01101000 Pointer to right child. .half 0x70b6 # Tree Idx 176 011010000 Dict Idx for "examined" .half 0x005c # Tree Idx 177 011010001 Literal "\134" .half 0x0134 # Tree Idx 178 01101001 Pointer to right child. .half 0x70c5 # Tree Idx 179 011010010 Dict Idx for "histo" .half 0x70bf # Tree Idx 180 011010011 Dict Idx for "being" .half 0x0139 # Tree Idx 181 0110101 Pointer to right child. .half 0x0138 # Tree Idx 182 01101010 Pointer to right child. .half 0x0042 # Tree Idx 183 011010100 Literal "B" .half 0x70a4 # Tree Idx 184 011010101 Dict Idx for "Address" .half 0x013b # Tree Idx 185 01101011 Pointer to right child. .half 0x70b0 # Tree Idx 186 011010110 Dict Idx for "ULOOP" .half 0x70ac # Tree Idx 187 011010111 Dict Idx for "and" .half 0x014c # Tree Idx 188 011011 Pointer to right child. .half 0x0145 # Tree Idx 189 0110110 Pointer to right child. .half 0x0142 # Tree Idx 190 01101100 Pointer to right child. .half 0x0141 # Tree Idx 191 011011000 Pointer to right child. .half 0x003e # Tree Idx 192 0110110000 Literal ">" .half 0x727d # Tree Idx 193 0110110001 Dict Idx for "Convert" .half 0x0144 # Tree Idx 194 011011001 Pointer to right child. .half 0x728a # Tree Idx 195 0110110010 Dict Idx for "doi" .half 0x7285 # Tree Idx 196 0110110011 Dict Idx for "used" .half 0x0149 # Tree Idx 197 01101101 Pointer to right child. .half 0x0148 # Tree Idx 198 011011010 Pointer to right child. .half 0x726d # Tree Idx 199 0110110100 Dict Idx for "Character" .half 0x7267 # Tree Idx 200 0110110101 Dict Idx for "UDONE" .half 0x014b # Tree Idx 201 011011011 Pointer to right child. .half 0x003d # Tree Idx 202 0110110110 Literal "=" .half 0x7277 # Tree Idx 203 0110110111 Dict Idx for "SLOOP" .half 0x0150 # Tree Idx 204 0110111 Pointer to right child. .half 0x014f # Tree Idx 205 01101110 Pointer to right child. .half 0x0041 # Tree Idx 206 011011100 Literal "A" .half 0x70cb # Tree Idx 207 011011101 Dict Idx for "upper" .half 0x0154 # Tree Idx 208 01101111 Pointer to right child. .half 0x0153 # Tree Idx 209 011011110 Pointer to right child. .half 0x7294 # Tree Idx 210 0110111100 Dict Idx for "means" .half 0x728e # Tree Idx 211 0110111101 Dict Idx for "index" .half 0x0158 # Tree Idx 212 011011111 Pointer to right child. .half 0x0157 # Tree Idx 213 0110111110 Pointer to right child. .half 0x003c # Tree Idx 214 01101111100 Literal "<" .half 0x005d # Tree Idx 215 01101111101 Literal "]" .half 0x729a # Tree Idx 216 0110111111 Dict Idx for "Register" .half 0x0161 # Tree Idx 217 0111 Pointer to right child. .half 0x0160 # Tree Idx 218 01110 Pointer to right child. .half 0x015d # Tree Idx 219 011100 Pointer to right child. .half 0x0027 # Tree Idx 220 0111000 Literal "'" .half 0x015f # Tree Idx 221 0111001 Pointer to right child. .half 0x7050 # Tree Idx 222 01110010 Dict Idx for ": " .half 0x0022 # Tree Idx 223 01110011 Literal "\"" .half 0x002e # Tree Idx 224 011101 Literal "." .half 0x7009 # Tree Idx 225 01111 Dict Idx for " $" .half 0x01a2 # Tree Idx 226 1 Pointer to right child. .half 0x0179 # Tree Idx 227 10 Pointer to right child. .half 0x0176 # Tree Idx 228 100 Pointer to right child. .half 0x016d # Tree Idx 229 1000 Pointer to right child. .half 0x016a # Tree Idx 230 10000 Pointer to right child. .half 0x0169 # Tree Idx 231 100000 Pointer to right child. .half 0x702b # Tree Idx 232 1000000 Dict Idx for "ascii" .half 0x0068 # Tree Idx 233 1000001 Literal "h" .half 0x016c # Tree Idx 234 100001 Pointer to right child. .half 0x0064 # Tree Idx 235 1000010 Literal "d" .half 0x0034 # Tree Idx 236 1000011 Literal "4" .half 0x0175 # Tree Idx 237 10001 Pointer to right child. .half 0x0170 # Tree Idx 238 100010 Pointer to right child. .half 0x7028 # Tree Idx 239 1000100 Dict Idx for ":\n" .half 0x0172 # Tree Idx 240 1000101 Pointer to right child. .half 0x004c # Tree Idx 241 10001010 Literal "L" .half 0x0174 # Tree Idx 242 10001011 Pointer to right child. .half 0x0043 # Tree Idx 243 100010110 Literal "C" .half 0x708c # Tree Idx 244 100010111 Dict Idx for "miss" .half 0x7013 # Tree Idx 245 100011 Dict Idx for "t1" .half 0x0178 # Tree Idx 246 1001 Pointer to right child. .half 0x0065 # Tree Idx 247 10010 Literal "e" .half 0x0073 # Tree Idx 248 10011 Literal "s" .half 0x018f # Tree Idx 249 101 Pointer to right child. .half 0x018e # Tree Idx 250 1010 Pointer to right child. .half 0x017f # Tree Idx 251 10100 Pointer to right child. .half 0x017e # Tree Idx 252 101000 Pointer to right child. .half 0x0032 # Tree Idx 253 1010000 Literal "2" .half 0x0075 # Tree Idx 254 1010001 Literal "u" .half 0x0187 # Tree Idx 255 101001 Pointer to right child. .half 0x0184 # Tree Idx 256 1010010 Pointer to right child. .half 0x0183 # Tree Idx 257 10100100 Pointer to right child. .half 0x709d # Tree Idx 258 101001000 Dict Idx for " # " .half 0x7099 # Tree Idx 259 101001001 Dict Idx for "beq" .half 0x0186 # Tree Idx 260 10100101 Pointer to right child. .half 0x002d # Tree Idx 261 101001010 Literal "-" .half 0x006a # Tree Idx 262 101001011 Literal "j" .half 0x018b # Tree Idx 263 1010011 Pointer to right child. .half 0x018a # Tree Idx 264 10100110 Pointer to right child. .half 0x7091 # Tree Idx 265 101001100 Dict Idx for "nop" .half 0x003a # Tree Idx 266 101001101 Literal ":" .half 0x018d # Tree Idx 267 10100111 Pointer to right child. .half 0x0033 # Tree Idx 268 101001110 Literal "3" .half 0x7095 # Tree Idx 269 101001111 Dict Idx for "bne" .half 0x7000 # Tree Idx 270 10101 Dict Idx for " " .half 0x0197 # Tree Idx 271 1011 Pointer to right child. .half 0x0196 # Tree Idx 272 10110 Pointer to right child. .half 0x0193 # Tree Idx 273 101100 Pointer to right child. .half 0x0063 # Tree Idx 274 1011000 Literal "c" .half 0x0195 # Tree Idx 275 1011001 Pointer to right child. .half 0x704d # Tree Idx 276 10110010 Dict Idx for "to" .half 0x0076 # Tree Idx 277 10110011 Literal "v" .half 0x006c # Tree Idx 278 101101 Literal "l" .half 0x01a1 # Tree Idx 279 10111 Pointer to right child. .half 0x019e # Tree Idx 280 101110 Pointer to right child. .half 0x019b # Tree Idx 281 1011100 Pointer to right child. .half 0x704a # Tree Idx 282 10111000 Dict Idx for "($" .half 0x019d # Tree Idx 283 10111001 Pointer to right child. .half 0x707c # Tree Idx 284 101110010 Dict Idx for "table" .half 0x7074 # Tree Idx 285 101110011 Dict Idx for "address" .half 0x01a0 # Tree Idx 286 1011101 Pointer to right child. .half 0x7043 # Tree Idx 287 10111010 Dict Idx for "the" .half 0x7040 # Tree Idx 288 10111011 Dict Idx for "t2" .half 0x006f # Tree Idx 289 101111 Literal "o" .half 0x01f6 # Tree Idx 290 11 Pointer to right child. .half 0x01d7 # Tree Idx 291 110 Pointer to right child. .half 0x01aa # Tree Idx 292 1100 Pointer to right child. .half 0x01a7 # Tree Idx 293 11000 Pointer to right child. .half 0x0030 # Tree Idx 294 110000 Literal "0" .half 0x01a9 # Tree Idx 295 110001 Pointer to right child. .half 0x7020 # Tree Idx 296 1100010 Dict Idx for ".\n" .half 0x006d # Tree Idx 297 1100011 Literal "m" .half 0x01ca # Tree Idx 298 11001 Pointer to right child. .half 0x01bb # Tree Idx 299 110010 Pointer to right child. .half 0x01b4 # Tree Idx 300 1100100 Pointer to right child. .half 0x01b1 # Tree Idx 301 11001000 Pointer to right child. .half 0x01b0 # Tree Idx 302 110010000 Pointer to right child. .half 0x713f # Tree Idx 303 1100100000 Dict Idx for ", -" .half 0x0035 # Tree Idx 304 1100100001 Literal "5" .half 0x01b3 # Tree Idx 305 110010001 Pointer to right child. .half 0x714a # Tree Idx 306 1100100010 Dict Idx for " ## " .half 0x7143 # Tree Idx 307 1100100011 Dict Idx for "strlen" .half 0x01b8 # Tree Idx 308 11001001 Pointer to right child. .half 0x01b7 # Tree Idx 309 110010010 Pointer to right child. .half 0x7137 # Tree Idx 310 1100100100 Dict Idx for "The" .half 0x7132 # Tree Idx 311 1100100101 Dict Idx for "know" .half 0x01ba # Tree Idx 312 110010011 Pointer to right child. .half 0x0057 # Tree Idx 313 1100100110 Literal "W" .half 0x713b # Tree Idx 314 1100100111 Dict Idx for "one" .half 0x01c3 # Tree Idx 315 1100101 Pointer to right child. .half 0x01c0 # Tree Idx 316 11001010 Pointer to right child. .half 0x01bf # Tree Idx 317 110010100 Pointer to right child. .half 0x7168 # Tree Idx 318 1100101000 Dict Idx for "element" .half 0x7163 # Tree Idx 319 1100101001 Dict Idx for " \"\"\n" .half 0x01c2 # Tree Idx 320 110010101 Pointer to right child. .half 0x7174 # Tree Idx 321 1100101010 Dict Idx for "next" .half 0x7170 # Tree Idx 322 1100101011 Dict Idx for "And" .half 0x01c7 # Tree Idx 323 11001011 Pointer to right child. .half 0x01c6 # Tree Idx 324 110010110 Pointer to right child. .half 0x007a # Tree Idx 325 1100101100 Literal "z" .half 0x7156 # Tree Idx 326 1100101101 Dict Idx for "Load" .half 0x01c9 # Tree Idx 327 110010111 Pointer to right child. .half 0x715f # Tree Idx 328 1100101110 Dict Idx for "add" .half 0x715b # Tree Idx 329 1100101111 Dict Idx for "100" .half 0x01ce # Tree Idx 330 110011 Pointer to right child. .half 0x01cd # Tree Idx 331 1100110 Pointer to right child. .half 0x0049 # Tree Idx 332 11001100 Literal "I" .half 0x0062 # Tree Idx 333 11001101 Literal "b" .half 0x01d6 # Tree Idx 334 1100111 Pointer to right child. .half 0x01d3 # Tree Idx 335 11001110 Pointer to right child. .half 0x01d2 # Tree Idx 336 110011100 Pointer to right child. .half 0x70d5 # Tree Idx 337 1100111000 Dict Idx for "################################################################################\n" .half 0x70d1 # Tree Idx 338 1100111001 Dict Idx for "## " .half 0x01d5 # Tree Idx 339 110011101 Pointer to right child. .half 0x712d # Tree Idx 340 1100111010 Dict Idx for " # " .half 0x7127 # Tree Idx 341 1100111011 Dict Idx for "stars" .half 0x7047 # Tree Idx 342 11001111 Dict Idx for "t3" .half 0x01f5 # Tree Idx 343 1101 Pointer to right child. .half 0x01dc # Tree Idx 344 11010 Pointer to right child. .half 0x01db # Tree Idx 345 110100 Pointer to right child. .half 0x7023 # Tree Idx 346 1101000 Dict Idx for "addi" .half 0x0066 # Tree Idx 347 1101001 Literal "f" .half 0x01ec # Tree Idx 348 110101 Pointer to right child. .half 0x01e5 # Tree Idx 349 1101010 Pointer to right child. .half 0x01e2 # Tree Idx 350 11010100 Pointer to right child. .half 0x01e1 # Tree Idx 351 110101000 Pointer to right child. .half 0x7188 # Tree Idx 352 1101010000 Dict Idx for "histogram_data" .half 0x7183 # Tree Idx 353 1101010001 Dict Idx for "that" .half 0x01e4 # Tree Idx 354 110101001 Pointer to right child. .half 0x7197 # Tree Idx 355 1101010010 Dict Idx for "jal" .half 0x004d # Tree Idx 356 1101010011 Literal "M" .half 0x01e9 # Tree Idx 357 11010101 Pointer to right child. .half 0x01e8 # Tree Idx 358 110101010 Pointer to right child. .half 0x7179 # Tree Idx 359 1101010100 Dict Idx for "LOOP" .half 0x006b # Tree Idx 360 1101010101 Literal "k" .half 0x01eb # Tree Idx 361 110101011 Pointer to right child. .half 0x717e # Tree Idx 362 1101010110 Dict Idx for "char" .half 0x0053 # Tree Idx 363 1101010111 Literal "S" .half 0x01f0 # Tree Idx 364 1101011 Pointer to right child. .half 0x01ef # Tree Idx 365 11010110 Pointer to right child. .half 0x0028 # Tree Idx 366 110101100 Literal "(" .half 0x0029 # Tree Idx 367 110101101 Literal ")" .half 0x01f4 # Tree Idx 368 11010111 Pointer to right child. .half 0x01f3 # Tree Idx 369 110101110 Pointer to right child. .half 0x719f # Tree Idx 370 1101011100 Dict Idx for "..." .half 0x719b # Tree Idx 371 1101011101 Dict Idx for "you" .half 0x7082 # Tree Idx 372 110101111 Dict Idx for "character" .half 0x000a # Tree Idx 373 11011 Literal "\n" .half 0x0020 # Tree Idx 374 111 Literal " "