From 298fe805c06aa29a01973ddc8a1fe0b4df805f25 Mon Sep 17 00:00:00 2001 From: Erick Date: Fri, 4 Feb 2022 02:10:58 +0100 Subject: [PATCH] add not register --- tyvm.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/tyvm.c b/tyvm.c index dfdd0f9..3589eaa 100644 --- a/tyvm.c +++ b/tyvm.c @@ -61,7 +61,7 @@ enum opcodes { // [name, value] OP_LDR, // load register, OP_STR, // store register, OP_RTI, // unused opcode - OP_NOT, // bitwise not, + OP_NOT, // bitwise not, 1001 OP_LDI, // indirect load, 1010 OP_STI, // indirect store, OP_JMP, // jump, 1100 @@ -180,7 +180,13 @@ int main(int argc, const char* argv[]) { //{STR}; break; case OP_NOT: - //{NOT}; + uint16_t dr = (instr >> 9) & 0x7; // destination register + uint16_t sr = (instr >> 6) & 0x7; // source register + + reg[dr] = ~(reg[sr]); + + update_flags(dr); + break; case OP_LDI: uint16_t dr = (instr >> 9) & 0x7;