summaryrefslogtreecommitdiff
path: root/nandgame
diff options
context:
space:
mode:
authoruvok2026-01-07 19:41:03 +0100
committeruvok2026-01-07 19:41:03 +0100
commit21d45b9a201234f3da4244015c4a6973c48e8fa6 (patch)
tree1539485e43550b635c772d20056bbaf34b355106 /nandgame
parent7eeaa1a04733910d408b2400b3f67cda525bc5ca (diff)
disas: endianness
Diffstat (limited to 'nandgame')
-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: