summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--nandgame/assembler/disas_ins.py23
1 files changed, 23 insertions, 0 deletions
diff --git a/nandgame/assembler/disas_ins.py b/nandgame/assembler/disas_ins.py
new file mode 100644
index 0000000..55d6177
--- /dev/null
+++ b/nandgame/assembler/disas_ins.py
@@ -0,0 +1,23 @@
+import sys
+
+from disas import print_decoded
+
+if __name__ == "__main__":
+ if len(sys.argv) != 2:
+ print(f"Usage: {sys.argv[0]} [ins]")
+ sys.exit(1)
+
+ ins_hex = sys.argv[1]
+ insb = bytes.fromhex(ins_hex)
+ if (len(insb) != 2):
+ print("Invalid instruction")
+ sys.exit(1)
+ ins = int.from_bytes(insb)
+ raw_ins = f"{insb[0]:02x} {insb[1]:02x}"
+ decoded_ins = print_decoded(ins, False)
+ decoded_ins2 = print_decoded(ins, True)
+ if decoded_ins == decoded_ins2:
+ line = f"\t{raw_ins}\t{decoded_ins}"
+ else:
+ line = f"\t{raw_ins}\t{decoded_ins2:<25}; {decoded_ins}"
+ print(line) \ No newline at end of file