summaryrefslogtreecommitdiff
path: root/nandgame/assembler/disas_ins_main.py
diff options
context:
space:
mode:
authoruvok2026-01-14 20:44:16 +0100
committeruvok2026-01-14 20:44:16 +0100
commit1561eff8780dc15dc5ea46d7225cc49a46f709ca (patch)
tree130d44ef295ff2113fc56c592a78780035449dff /nandgame/assembler/disas_ins_main.py
parent281414ea9b42e213b85b95b7072b73d1f1e3f240 (diff)
Restructure asembler as package
Diffstat (limited to 'nandgame/assembler/disas_ins_main.py')
-rwxr-xr-xnandgame/assembler/disas_ins_main.py27
1 files changed, 27 insertions, 0 deletions
diff --git a/nandgame/assembler/disas_ins_main.py b/nandgame/assembler/disas_ins_main.py
new file mode 100755
index 0000000..c2417d5
--- /dev/null
+++ b/nandgame/assembler/disas_ins_main.py
@@ -0,0 +1,27 @@
+#!/usr/bin/env python3
+
+import sys
+
+from py_nand_ass.disas import (
+ print_decoded,
+) # pyright: ignore[reportImplicitRelativeImport]
+
+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)