summaryrefslogtreecommitdiff
path: root/nandgame
diff options
context:
space:
mode:
Diffstat (limited to 'nandgame')
-rwxr-xr-xnandgame/assembler/disas.py6
1 files changed, 6 insertions, 0 deletions
diff --git a/nandgame/assembler/disas.py b/nandgame/assembler/disas.py
index 607537a..0256976 100755
--- a/nandgame/assembler/disas.py
+++ b/nandgame/assembler/disas.py
@@ -146,6 +146,12 @@ def fixup_ins(ins: int) -> list[str]:
# all other jumps? <=, >=, =, <=>
else:
return ["jmp", "", "", "", ""]
+ if mnemonic == "and" and op1 == ZERO:
+ if jumpdest in ["jgt", "jlt", "jne", JUMP_NONE]:
+ newjmp = ""
+ else:
+ newjmp = "jmp"
+ return ["mov", dest, ZERO, "", newjmp]
return [mnemonic, dest, op1, op2, jumpdest]