summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm.myr9
1 files changed, 9 insertions, 0 deletions
diff --git a/asm.myr b/asm.myr
index 3d70adc..4f6e1b4 100644
--- a/asm.myr
+++ b/asm.myr
@@ -161,6 +161,15 @@ const emitinstr = {p
| _:
-> `std.Err(std.fmt("invalid argument to SKP: {}", p[1]))
;;
+ | "SKNP":
+ if p.len < 2
+ -> `std.Err("SKNP missing address")
+ ;;
+ match parselit(p[1])
+ | `Register(n): b = `std.Some([0xe0 | (n & 0x0f), 0xa1])
+ | _:
+ -> `std.Err(std.fmt("invalid argument to SKNP: {}", p[1]))
+ ;;
| _:
-> `std.Err(std.fmt("unrecognized instruction {}", p[0]))
;;