Add error handling sample code
[TD_IML.git] / error_handling / mips1.asm
diff --git a/error_handling/mips1.asm b/error_handling/mips1.asm
new file mode 100644 (file)
index 0000000..cab0e10
--- /dev/null
@@ -0,0 +1,29 @@
+.ktext 0x80000180
+    li   $k1, 16
+    mfc0 $k0, $13
+    beq  $k0, $k1, errmem
+    move $k0, $a0
+    move $k1, $v0
+    la   $a0, trapmsg
+    li   $v0, 4
+    syscall
+    j kret
+errmem:
+    move $k0, $a0
+    move $k1, $v0
+    la   $a0, memmsg
+    li   $v0, 4
+    syscall
+kret:
+    move $a0, $k0
+    move $k1, $v0
+    mfc0 $k0, $14
+    addi $k0, $k0, 4
+    mtc0 $k0, $14
+    eret
+.kdata
+    trapmsg: .asciiz "T"
+    memmsg:  .asciiz "O"
+.text
+    teq $0,  $0
+    lb  $t1, 0($0)
\ No newline at end of file