beq 0 init vmt: addi 0 0 0 /* class Pascal method pascal */ addi 0 0 0 /* class Pascal method triangle0 */ addi 0 0 0 /* class Pascal method triangle */ class_Pascal_method_pascal: psh 31 30 4 /* save return address */ ldw 2 30 8 /* parameter "i" */ addiu 3 0 0 lshi 3 3 16 oriu 3 3 1 cmp 2 2 3 bne 2 L6 addi 2 0 1 beq 0 L7 L6: add 2 0 0 L7: addiu 3 0 0 lshi 3 3 16 oriu 3 3 0 cmp 2 2 3 bne 2 L5 addiu 2 0 0 lshi 2 2 16 oriu 2 2 1 beq 0 L8 L5: addiu 2 0 0 lshi 2 2 16 oriu 2 2 0 L8: beq 2 L9 ldw 2 30 4 /* parameter "j" */ addiu 3 0 0 lshi 3 3 16 oriu 3 3 1 cmp 2 2 3 bne 2 L11 addi 2 0 1 beq 0 L12 L11: add 2 0 0 L12: addiu 3 0 0 lshi 3 3 16 oriu 3 3 0 cmp 2 2 3 bne 2 L10 addiu 2 0 0 lshi 2 2 16 oriu 2 2 1 beq 0 L13 L10: addiu 2 0 0 lshi 2 2 16 oriu 2 2 0 L13: beq 2 L9 addi 2 0 1 L9: addiu 3 0 0 lshi 3 3 16 oriu 3 3 0 cmp 2 2 3 bne 2 L4 addiu 2 0 0 lshi 2 2 16 oriu 2 2 1 beq 0 L14 L4: addiu 2 0 0 lshi 2 2 16 oriu 2 2 0 L14: addiu 3 0 0 lshi 3 3 16 oriu 3 3 0 cmp 2 2 3 bne 2 L3 addiu 2 0 0 lshi 2 2 16 oriu 2 2 1 beq 0 L15 L3: addiu 2 0 0 lshi 2 2 16 oriu 2 2 0 L15: beq 2 L16 ldw 2 30 8 /* parameter "i" */ ldw 3 30 4 /* parameter "j" */ cmp 2 2 3 bne 2 L18 addi 2 0 1 beq 0 L19 L18: add 2 0 0 L19: addiu 3 0 0 lshi 3 3 16 oriu 3 3 0 cmp 2 2 3 bne 2 L17 addiu 2 0 0 lshi 2 2 16 oriu 2 2 1 beq 0 L20 L17: addiu 2 0 0 lshi 2 2 16 oriu 2 2 0 L20: beq 2 L16 addi 2 0 1 L16: addiu 3 0 0 lshi 3 3 16 oriu 3 3 0 cmp 2 2 3 bne 2 L2 addiu 2 0 0 lshi 2 2 16 oriu 2 2 1 beq 0 L21 L2: addiu 2 0 0 lshi 2 2 16 oriu 2 2 0 L21: beq 2 L1 addiu 2 0 0 lshi 2 2 16 oriu 2 2 1 beq 0 L22 L1: ldw 2 30 12 /* parameter "this" */ bne 2 L23 /* Nullpointer check */ oriu 3 0 52 /* '4' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 58 /* ':' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 49 /* '1' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 53 /* '5' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 78 /* 'N' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 117 /* 'u' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 108 /* 'l' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 108 /* 'l' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 112 /* 'p' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 111 /* 'o' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 105 /* 'i' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 110 /* 'n' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 116 /* 't' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 101 /* 'e' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 114 /* 'r' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 101 /* 'e' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 120 /* 'x' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 99 /* 'c' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 101 /* 'e' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 112 /* 'p' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 116 /* 't' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 105 /* 'i' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 111 /* 'o' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 110 /* 'n' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 119 /* 'w' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 104 /* 'h' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 105 /* 'i' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 108 /* 'l' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 101 /* 'e' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 116 /* 't' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 114 /* 'r' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 121 /* 'y' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 105 /* 'i' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 110 /* 'n' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 103 /* 'g' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 116 /* 't' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 111 /* 'o' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 99 /* 'c' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 97 /* 'a' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 108 /* 'l' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 108 /* 'l' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 116 /* 't' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 104 /* 'h' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 101 /* 'e' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 109 /* 'm' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 101 /* 'e' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 116 /* 't' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 104 /* 'h' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 111 /* 'o' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 100 /* 'd' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 39 /* ''' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 112 /* 'p' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 97 /* 'a' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 115 /* 's' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 99 /* 'c' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 97 /* 'a' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 108 /* 'l' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 39 /* ''' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 111 /* 'o' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 110 /* 'n' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 99 /* 'c' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 108 /* 'l' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 97 /* 'a' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 115 /* 's' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 115 /* 's' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 80 /* 'P' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 97 /* 'a' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 115 /* 's' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 99 /* 'c' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 97 /* 'a' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 108 /* 'l' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ syscall 0 0 15 /* SYS_IO_FLUSH */ syscall 0 0 19 /* SYS_EXIT */ L23: psh 2 30 4 /* store address of "this" on stack for method call */ ldw 2 2 0 /* get address of the VMT */ ldw 2 2 0 /* get address of the method pascal */ ldw 3 30 12 /* parameter "i" */ addiu 4 0 0 lshi 4 4 16 oriu 4 4 1 sub 3 3 4 psh 3 30 4 /* store method parameter on stack */ ldw 3 30 12 /* parameter "j" */ addiu 4 0 0 lshi 4 4 16 oriu 4 4 1 sub 3 3 4 psh 3 30 4 /* store method parameter on stack */ addiu 31 0 0 /* store return address 1200 */ lshi 31 31 16 oriu 31 31 1208 ret 2 addi 30 30 12 /* free stack space */ oriu 2 1 0 /* read return value from method */ psh 2 30 4 /* spilling register R2 to stack */ ldw 2 30 16 /* parameter "this" */ bne 2 L24 /* Nullpointer check */ oriu 3 0 52 /* '4' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 58 /* ':' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 52 /* '4' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 51 /* '3' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 78 /* 'N' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 117 /* 'u' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 108 /* 'l' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 108 /* 'l' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 112 /* 'p' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 111 /* 'o' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 105 /* 'i' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 110 /* 'n' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 116 /* 't' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 101 /* 'e' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 114 /* 'r' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 101 /* 'e' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 120 /* 'x' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 99 /* 'c' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 101 /* 'e' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 112 /* 'p' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 116 /* 't' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 105 /* 'i' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 111 /* 'o' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 110 /* 'n' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 119 /* 'w' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 104 /* 'h' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 105 /* 'i' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 108 /* 'l' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 101 /* 'e' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 116 /* 't' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 114 /* 'r' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 121 /* 'y' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 105 /* 'i' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 110 /* 'n' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 103 /* 'g' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 116 /* 't' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 111 /* 'o' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 99 /* 'c' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 97 /* 'a' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 108 /* 'l' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 108 /* 'l' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 116 /* 't' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 104 /* 'h' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 101 /* 'e' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 109 /* 'm' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 101 /* 'e' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 116 /* 't' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 104 /* 'h' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 111 /* 'o' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 100 /* 'd' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 39 /* ''' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 112 /* 'p' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 97 /* 'a' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 115 /* 's' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 99 /* 'c' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 97 /* 'a' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 108 /* 'l' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 39 /* ''' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 111 /* 'o' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 110 /* 'n' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 99 /* 'c' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 108 /* 'l' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 97 /* 'a' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 115 /* 's' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 115 /* 's' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 80 /* 'P' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 97 /* 'a' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 115 /* 's' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 99 /* 'c' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 97 /* 'a' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 108 /* 'l' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ syscall 0 0 15 /* SYS_IO_FLUSH */ syscall 0 0 19 /* SYS_EXIT */ L24: psh 2 30 4 /* store address of "this" on stack for method call */ ldw 2 2 0 /* get address of the VMT */ ldw 2 2 0 /* get address of the method pascal */ ldw 3 30 16 /* parameter "i" */ addiu 4 0 0 lshi 4 4 16 oriu 4 4 1 sub 3 3 4 psh 3 30 4 /* store method parameter on stack */ ldw 3 30 16 /* parameter "j" */ psh 3 30 4 /* store method parameter on stack */ addiu 31 0 0 /* store return address 1952 */ lshi 31 31 16 oriu 31 31 1960 ret 2 addi 30 30 12 /* free stack space */ pop 2 30 4 /* restoring register R2 */ oriu 3 1 0 /* read return value from method */ add 2 2 3 L22: or 1 0 2 /* save return value in R1 */ pop 31 30 4 /* get return address */ ret 31 class_Pascal_method_triangle0: psh 31 30 4 /* save return address */ ldw 2 30 16 /* parameter "this" */ bne 2 L25 /* Nullpointer check */ oriu 3 0 55 /* '7' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 58 /* ':' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 49 /* '1' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 57 /* '9' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 78 /* 'N' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 117 /* 'u' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 108 /* 'l' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 108 /* 'l' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 112 /* 'p' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 111 /* 'o' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 105 /* 'i' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 110 /* 'n' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 116 /* 't' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 101 /* 'e' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 114 /* 'r' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 101 /* 'e' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 120 /* 'x' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 99 /* 'c' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 101 /* 'e' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 112 /* 'p' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 116 /* 't' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 105 /* 'i' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 111 /* 'o' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 110 /* 'n' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 119 /* 'w' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 104 /* 'h' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 105 /* 'i' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 108 /* 'l' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 101 /* 'e' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 116 /* 't' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 114 /* 'r' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 121 /* 'y' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 105 /* 'i' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 110 /* 'n' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 103 /* 'g' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 116 /* 't' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 111 /* 'o' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 99 /* 'c' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 97 /* 'a' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 108 /* 'l' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 108 /* 'l' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 116 /* 't' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 104 /* 'h' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 101 /* 'e' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 109 /* 'm' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 101 /* 'e' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 116 /* 't' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 104 /* 'h' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 111 /* 'o' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 100 /* 'd' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 39 /* ''' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 112 /* 'p' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 97 /* 'a' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 115 /* 's' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 99 /* 'c' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 97 /* 'a' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 108 /* 'l' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 39 /* ''' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 111 /* 'o' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 110 /* 'n' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 99 /* 'c' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 108 /* 'l' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 97 /* 'a' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 115 /* 's' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 115 /* 's' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 80 /* 'P' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 97 /* 'a' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 115 /* 's' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 99 /* 'c' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 97 /* 'a' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 108 /* 'l' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ syscall 0 0 15 /* SYS_IO_FLUSH */ syscall 0 0 19 /* SYS_EXIT */ L25: psh 2 30 4 /* store address of "this" on stack for method call */ ldw 2 2 0 /* get address of the VMT */ ldw 2 2 0 /* get address of the method pascal */ ldw 3 30 12 /* parameter "i" */ psh 3 30 4 /* store method parameter on stack */ ldw 3 30 12 /* parameter "j" */ psh 3 30 4 /* store method parameter on stack */ addiu 31 0 0 /* store return address 2708 */ lshi 31 31 16 oriu 31 31 2716 ret 2 addi 30 30 12 /* free stack space */ oriu 2 1 0 /* read return value from method */ syscall 2 0 7 /* SYS_IO_WR_INT */ syscall 0 0 15 /* SYS_IO_FLUSH */ ldw 2 30 8 /* parameter "i" */ ldw 3 30 4 /* parameter "j" */ cmp 2 2 3 bne 2 L26 addiu 2 0 0 lshi 2 2 16 oriu 2 2 0 beq 0 L27 L26: addiu 2 0 0 lshi 2 2 16 oriu 2 2 32 syscall 2 0 6 /* SYS_IO_WR_CHR */ syscall 0 0 15 /* SYS_IO_FLUSH */ L27: ldw 2 30 12 /* parameter "n" */ ldw 3 30 8 /* parameter "i" */ cmp 2 2 3 bne 2 L28 ldw 2 30 8 /* parameter "i" */ ldw 3 30 4 /* parameter "j" */ cmp 2 2 3 bne 2 L29 addiu 2 0 0 lshi 2 2 16 oriu 2 2 1 beq 0 L30 L29: ldw 2 30 16 /* parameter "this" */ bne 2 L31 /* Nullpointer check */ oriu 3 0 49 /* '1' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 50 /* '2' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 58 /* ':' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 49 /* '1' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 57 /* '9' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 78 /* 'N' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 117 /* 'u' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 108 /* 'l' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 108 /* 'l' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 112 /* 'p' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 111 /* 'o' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 105 /* 'i' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 110 /* 'n' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 116 /* 't' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 101 /* 'e' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 114 /* 'r' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 101 /* 'e' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 120 /* 'x' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 99 /* 'c' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 101 /* 'e' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 112 /* 'p' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 116 /* 't' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 105 /* 'i' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 111 /* 'o' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 110 /* 'n' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 119 /* 'w' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 104 /* 'h' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 105 /* 'i' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 108 /* 'l' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 101 /* 'e' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 116 /* 't' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 114 /* 'r' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 121 /* 'y' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 105 /* 'i' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 110 /* 'n' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 103 /* 'g' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 116 /* 't' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 111 /* 'o' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 99 /* 'c' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 97 /* 'a' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 108 /* 'l' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 108 /* 'l' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 116 /* 't' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 104 /* 'h' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 101 /* 'e' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 109 /* 'm' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 101 /* 'e' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 116 /* 't' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 104 /* 'h' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 111 /* 'o' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 100 /* 'd' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 39 /* ''' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 116 /* 't' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 114 /* 'r' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 105 /* 'i' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 97 /* 'a' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 110 /* 'n' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 103 /* 'g' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 108 /* 'l' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 101 /* 'e' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 48 /* '0' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 39 /* ''' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 111 /* 'o' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 110 /* 'n' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 99 /* 'c' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 108 /* 'l' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 97 /* 'a' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 115 /* 's' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 115 /* 's' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 80 /* 'P' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 97 /* 'a' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 115 /* 's' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 99 /* 'c' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 97 /* 'a' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 108 /* 'l' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ syscall 0 0 15 /* SYS_IO_FLUSH */ syscall 0 0 19 /* SYS_EXIT */ L31: psh 2 30 4 /* store address of "this" on stack for method call */ ldw 2 2 0 /* get address of the VMT */ ldw 2 2 4 /* get address of the method triangle0 */ ldw 3 30 16 /* parameter "n" */ psh 3 30 4 /* store method parameter on stack */ ldw 3 30 16 /* parameter "i" */ psh 3 30 4 /* store method parameter on stack */ ldw 3 30 16 /* parameter "j" */ addiu 4 0 0 lshi 4 4 16 oriu 4 4 1 add 3 3 4 psh 3 30 4 /* store method parameter on stack */ addiu 31 0 0 /* store return address 3604 */ lshi 31 31 16 oriu 31 31 3612 ret 2 addi 30 30 16 /* free stack space */ oriu 2 1 0 /* read return value from method */ L30: beq 0 L32 L28: ldw 2 30 8 /* parameter "i" */ ldw 3 30 4 /* parameter "j" */ cmp 2 2 3 bne 2 L33 addiu 2 0 0 lshi 2 2 16 oriu 2 2 10 syscall 2 0 6 /* SYS_IO_WR_CHR */ syscall 0 0 15 /* SYS_IO_FLUSH */ ldw 2 30 16 /* parameter "this" */ bne 2 L34 /* Nullpointer check */ oriu 3 0 49 /* '1' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 52 /* '4' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 58 /* ':' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 53 /* '5' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 50 /* '2' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 78 /* 'N' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 117 /* 'u' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 108 /* 'l' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 108 /* 'l' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 112 /* 'p' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 111 /* 'o' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 105 /* 'i' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 110 /* 'n' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 116 /* 't' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 101 /* 'e' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 114 /* 'r' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 101 /* 'e' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 120 /* 'x' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 99 /* 'c' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 101 /* 'e' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 112 /* 'p' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 116 /* 't' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 105 /* 'i' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 111 /* 'o' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 110 /* 'n' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 119 /* 'w' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 104 /* 'h' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 105 /* 'i' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 108 /* 'l' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 101 /* 'e' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 116 /* 't' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 114 /* 'r' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 121 /* 'y' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 105 /* 'i' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 110 /* 'n' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 103 /* 'g' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 116 /* 't' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 111 /* 'o' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 99 /* 'c' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 97 /* 'a' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 108 /* 'l' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 108 /* 'l' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 116 /* 't' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 104 /* 'h' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 101 /* 'e' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 109 /* 'm' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 101 /* 'e' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 116 /* 't' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 104 /* 'h' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 111 /* 'o' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 100 /* 'd' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 39 /* ''' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 116 /* 't' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 114 /* 'r' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 105 /* 'i' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 97 /* 'a' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 110 /* 'n' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 103 /* 'g' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 108 /* 'l' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 101 /* 'e' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 48 /* '0' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 39 /* ''' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 111 /* 'o' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 110 /* 'n' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 99 /* 'c' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 108 /* 'l' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 97 /* 'a' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 115 /* 's' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 115 /* 's' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 80 /* 'P' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 97 /* 'a' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 115 /* 's' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 99 /* 'c' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 97 /* 'a' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 108 /* 'l' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ syscall 0 0 15 /* SYS_IO_FLUSH */ syscall 0 0 19 /* SYS_EXIT */ L34: psh 2 30 4 /* store address of "this" on stack for method call */ ldw 2 2 0 /* get address of the VMT */ ldw 2 2 4 /* get address of the method triangle0 */ ldw 3 30 16 /* parameter "n" */ psh 3 30 4 /* store method parameter on stack */ ldw 3 30 16 /* parameter "i" */ addiu 4 0 0 lshi 4 4 16 oriu 4 4 1 add 3 3 4 psh 3 30 4 /* store method parameter on stack */ addiu 3 0 0 lshi 3 3 16 oriu 3 3 1 psh 3 30 4 /* store method parameter on stack */ addiu 31 0 0 /* store return address 4440 */ lshi 31 31 16 oriu 31 31 4448 ret 2 addi 30 30 16 /* free stack space */ oriu 2 1 0 /* read return value from method */ beq 0 L35 L33: ldw 2 30 16 /* parameter "this" */ bne 2 L36 /* Nullpointer check */ oriu 3 0 49 /* '1' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 53 /* '5' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 58 /* ':' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 49 /* '1' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 57 /* '9' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 78 /* 'N' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 117 /* 'u' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 108 /* 'l' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 108 /* 'l' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 112 /* 'p' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 111 /* 'o' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 105 /* 'i' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 110 /* 'n' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 116 /* 't' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 101 /* 'e' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 114 /* 'r' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 101 /* 'e' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 120 /* 'x' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 99 /* 'c' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 101 /* 'e' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 112 /* 'p' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 116 /* 't' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 105 /* 'i' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 111 /* 'o' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 110 /* 'n' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 119 /* 'w' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 104 /* 'h' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 105 /* 'i' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 108 /* 'l' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 101 /* 'e' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 116 /* 't' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 114 /* 'r' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 121 /* 'y' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 105 /* 'i' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 110 /* 'n' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 103 /* 'g' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 116 /* 't' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 111 /* 'o' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 99 /* 'c' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 97 /* 'a' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 108 /* 'l' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 108 /* 'l' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 116 /* 't' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 104 /* 'h' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 101 /* 'e' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 109 /* 'm' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 101 /* 'e' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 116 /* 't' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 104 /* 'h' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 111 /* 'o' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 100 /* 'd' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 39 /* ''' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 116 /* 't' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 114 /* 'r' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 105 /* 'i' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 97 /* 'a' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 110 /* 'n' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 103 /* 'g' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 108 /* 'l' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 101 /* 'e' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 48 /* '0' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 39 /* ''' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 111 /* 'o' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 110 /* 'n' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 99 /* 'c' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 108 /* 'l' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 97 /* 'a' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 115 /* 's' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 115 /* 's' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 80 /* 'P' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 97 /* 'a' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 115 /* 's' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 99 /* 'c' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 97 /* 'a' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 108 /* 'l' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ syscall 0 0 15 /* SYS_IO_FLUSH */ syscall 0 0 19 /* SYS_EXIT */ L36: psh 2 30 4 /* store address of "this" on stack for method call */ ldw 2 2 0 /* get address of the VMT */ ldw 2 2 4 /* get address of the method triangle0 */ ldw 3 30 16 /* parameter "n" */ psh 3 30 4 /* store method parameter on stack */ ldw 3 30 16 /* parameter "i" */ psh 3 30 4 /* store method parameter on stack */ ldw 3 30 16 /* parameter "j" */ addiu 4 0 0 lshi 4 4 16 oriu 4 4 1 add 3 3 4 psh 3 30 4 /* store method parameter on stack */ addiu 31 0 0 /* store return address 5232 */ lshi 31 31 16 oriu 31 31 5240 ret 2 addi 30 30 16 /* free stack space */ oriu 2 1 0 /* read return value from method */ L35: L32: or 1 0 2 /* save return value in R1 */ pop 31 30 4 /* get return address */ ret 31 class_Pascal_method_triangle: psh 31 30 4 /* save return address */ ldw 2 30 8 /* parameter "this" */ bne 2 L37 /* Nullpointer check */ oriu 3 0 49 /* '1' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 56 /* '8' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 58 /* ':' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 52 /* '4' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 49 /* '1' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 78 /* 'N' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 117 /* 'u' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 108 /* 'l' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 108 /* 'l' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 112 /* 'p' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 111 /* 'o' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 105 /* 'i' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 110 /* 'n' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 116 /* 't' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 101 /* 'e' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 114 /* 'r' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 101 /* 'e' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 120 /* 'x' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 99 /* 'c' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 101 /* 'e' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 112 /* 'p' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 116 /* 't' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 105 /* 'i' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 111 /* 'o' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 110 /* 'n' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 119 /* 'w' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 104 /* 'h' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 105 /* 'i' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 108 /* 'l' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 101 /* 'e' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 116 /* 't' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 114 /* 'r' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 121 /* 'y' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 105 /* 'i' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 110 /* 'n' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 103 /* 'g' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 116 /* 't' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 111 /* 'o' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 99 /* 'c' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 97 /* 'a' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 108 /* 'l' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 108 /* 'l' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 116 /* 't' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 104 /* 'h' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 101 /* 'e' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 109 /* 'm' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 101 /* 'e' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 116 /* 't' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 104 /* 'h' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 111 /* 'o' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 100 /* 'd' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 39 /* ''' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 116 /* 't' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 114 /* 'r' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 105 /* 'i' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 97 /* 'a' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 110 /* 'n' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 103 /* 'g' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 108 /* 'l' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 101 /* 'e' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 48 /* '0' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 39 /* ''' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 111 /* 'o' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 110 /* 'n' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 99 /* 'c' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 108 /* 'l' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 97 /* 'a' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 115 /* 's' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 115 /* 's' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 80 /* 'P' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 97 /* 'a' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 115 /* 's' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 99 /* 'c' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 97 /* 'a' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 108 /* 'l' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ syscall 0 0 15 /* SYS_IO_FLUSH */ syscall 0 0 19 /* SYS_EXIT */ L37: psh 2 30 4 /* store address of "this" on stack for method call */ ldw 2 2 0 /* get address of the VMT */ ldw 2 2 4 /* get address of the method triangle0 */ ldw 3 30 8 /* parameter "n" */ psh 3 30 4 /* store method parameter on stack */ addiu 3 0 0 lshi 3 3 16 oriu 3 3 1 psh 3 30 4 /* store method parameter on stack */ addiu 3 0 0 lshi 3 3 16 oriu 3 3 1 psh 3 30 4 /* store method parameter on stack */ addiu 31 0 0 /* store return address 6036 */ lshi 31 31 16 oriu 31 31 6044 ret 2 addi 30 30 16 /* free stack space */ oriu 2 1 0 /* read return value from method */ or 1 0 2 /* save return value in R1 */ pop 31 30 4 /* get return address */ ret 31 start: addiu 2 0 0 /* new Pascal (size: 1 words) */ lshi 2 2 16 oriu 2 2 4 syscall 2 2 12 /* SYS_GC_ALLOC */ addiu 3 0 0 lshi 3 3 16 oriu 3 3 4 stw 3 2 0 /* store vmt address */ psh 2 30 4 /* store address of "this" on stack for "new" */ addi 30 30 4 /* free stack space */ bne 2 L38 /* Nullpointer check */ oriu 3 0 50 /* '2' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 49 /* '1' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 58 /* ':' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 49 /* '1' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 50 /* '2' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 78 /* 'N' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 117 /* 'u' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 108 /* 'l' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 108 /* 'l' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 112 /* 'p' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 111 /* 'o' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 105 /* 'i' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 110 /* 'n' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 116 /* 't' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 101 /* 'e' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 114 /* 'r' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 101 /* 'e' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 120 /* 'x' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 99 /* 'c' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 101 /* 'e' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 112 /* 'p' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 116 /* 't' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 105 /* 'i' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 111 /* 'o' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 110 /* 'n' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 119 /* 'w' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 104 /* 'h' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 105 /* 'i' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 108 /* 'l' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 101 /* 'e' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 116 /* 't' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 114 /* 'r' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 121 /* 'y' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 105 /* 'i' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 110 /* 'n' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 103 /* 'g' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 116 /* 't' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 111 /* 'o' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 99 /* 'c' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 97 /* 'a' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 108 /* 'l' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 108 /* 'l' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 116 /* 't' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 104 /* 'h' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 101 /* 'e' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 109 /* 'm' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 101 /* 'e' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 116 /* 't' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 104 /* 'h' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 111 /* 'o' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 100 /* 'd' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 39 /* ''' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 116 /* 't' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 114 /* 'r' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 105 /* 'i' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 97 /* 'a' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 110 /* 'n' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 103 /* 'g' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 108 /* 'l' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 101 /* 'e' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 39 /* ''' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 111 /* 'o' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 110 /* 'n' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 99 /* 'c' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 108 /* 'l' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 97 /* 'a' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 115 /* 's' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 115 /* 's' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 32 /* ' ' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 80 /* 'P' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 97 /* 'a' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 115 /* 's' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 99 /* 'c' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 97 /* 'a' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ oriu 3 0 108 /* 'l' */ syscall 3 0 6 /* SYS_IO_WR_CHR */ syscall 0 0 15 /* SYS_IO_FLUSH */ syscall 0 0 19 /* SYS_EXIT */ L38: psh 2 30 4 /* store address of "this" on stack for method call */ ldw 2 2 0 /* get address of the VMT */ ldw 2 2 8 /* get address of the method triangle */ addiu 3 0 0 lshi 3 3 16 oriu 3 3 10 psh 3 30 4 /* store method parameter on stack */ addiu 31 0 0 /* store return address 6840 */ lshi 31 31 16 oriu 31 31 6848 ret 2 addi 30 30 8 /* free stack space */ oriu 2 1 0 /* read return value from method */ syscall 0 0 19 /* SYS_EXIT */ init: syscall 30 0 13 /* SYS_GET_TOTAL_MEM_SIZE */ addiu 1 0 0 lshi 1 1 16 oriu 1 1 6860 sub 2 30 1 diviu 2 2 12 lshi 2 2 1 addiu 3 0 -4096 lshi 3 3 16 oriu 3 3 0 add 2 2 3 syscall 1 2 11 /* SYS_GC_INIT */ vmt_fill: addiu 2 0 0 /* class Pascal */ lshi 2 2 16 oriu 2 2 4 addiu 3 0 0 /* method pascal */ lshi 3 3 16 oriu 3 3 16 stw 3 2 0 addiu 3 0 0 /* method triangle0 */ lshi 3 3 16 oriu 3 3 1988 stw 3 2 4 addiu 3 0 0 /* method triangle */ lshi 3 3 16 oriu 3 3 5260 stw 3 2 8 beq 0 start