diff options
Diffstat (limited to 'eater_cpu/cpp/disas.h')
| -rw-r--r-- | eater_cpu/cpp/disas.h | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/eater_cpu/cpp/disas.h b/eater_cpu/cpp/disas.h index 9685e15..3fd4670 100644 --- a/eater_cpu/cpp/disas.h +++ b/eater_cpu/cpp/disas.h @@ -5,21 +5,22 @@ #include <string> static std::string disas(uint8_t ins) { + const uint8_t arg = ins & 0x0f; switch (ins >> 4) { case 0: return "nop"; case 1: - return std::format("lda {}", ins & 0x0f); + return std::format("lda {}", arg); case 2: - return std::format("add {}", ins & 0x0f); + return std::format("add {}", arg); case 3: - return std::format("sub {}", ins & 0x0f); + return std::format("sub {}", arg); case 4: - return std::format("sta {}", ins & 0x0f); + return std::format("sta {}", arg); case 5: - return std::format("ldi {}", ins & 0x0f); + return std::format("ldi {}", arg); case 6: - return std::format("jmp"); + return std::format("jmp {}", arg); case 14: return std::format("out"); case 15: |
