summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xnandgame/assembler/disas.py11
1 files changed, 9 insertions, 2 deletions
diff --git a/nandgame/assembler/disas.py b/nandgame/assembler/disas.py
index ea6cfcf..b8f5dba 100755
--- a/nandgame/assembler/disas.py
+++ b/nandgame/assembler/disas.py
@@ -15,6 +15,8 @@ JUMP_NONE = ""
JUMPS_IF_NZERO = ["jgt", "jlt", "jne", "jmp"]
JUMPS_IF_ZERO = ["jge", "jle", "jeq", "jmp"]
+ENDIANNESS = "little"
+
def decode_jump(ins: int) -> str:
if (ins & 0x7) == 0:
return JUMP_NONE
@@ -203,8 +205,13 @@ def main():
insb = f.read(2)
if not insb:
break
- ins = int.from_bytes(insb)
- raw_ins = f"{insb[0]:02x} {insb[1]:02x}"
+ ins = int.from_bytes(insb, byteorder=ENDIANNESS)
+ if ENDIANNESS in ["big", "be"]:
+ raw_ins = f"{insb[0]:02x} {insb[1]:02x}"
+ elif ENDIANNESS in ["little", "le"]:
+ raw_ins = f"{insb[1]:02x} {insb[0]:02x}"
+ else:
+ raw_ins = f"?? ??"
decoded_ins = print_decoded(ins, False)
decoded_ins2 = print_decoded(ins, True)
if decoded_ins == decoded_ins2: