diff options
| author | uvok | 2026-01-07 19:41:03 +0100 |
|---|---|---|
| committer | uvok | 2026-01-07 19:41:03 +0100 |
| commit | 21d45b9a201234f3da4244015c4a6973c48e8fa6 (patch) | |
| tree | 1539485e43550b635c772d20056bbaf34b355106 /nandgame/assembler | |
| parent | 7eeaa1a04733910d408b2400b3f67cda525bc5ca (diff) | |
disas: endianness
Diffstat (limited to 'nandgame/assembler')
| -rwxr-xr-x | nandgame/assembler/disas.py | 11 |
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: |
