From 21d45b9a201234f3da4244015c4a6973c48e8fa6 Mon Sep 17 00:00:00 2001 From: uvok Date: Wed, 7 Jan 2026 19:41:03 +0100 Subject: disas: endianness --- nandgame/assembler/disas.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'nandgame/assembler') 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: -- cgit v1.2.3