From b397371a5348b0edb167f1d0e3dd6d49b3b993cd Mon Sep 17 00:00:00 2001 From: AlmeidaDaniel <2309248@upy.edu.mx> Date: Sat, 28 Mar 2026 13:39:53 -0600 Subject: [PATCH] Added COM, NEG instructions --- src/spider/runtime/instr/Instr_000-01F.cpp | 24 ++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/src/spider/runtime/instr/Instr_000-01F.cpp b/src/spider/runtime/instr/Instr_000-01F.cpp index d2933e9..89f661d 100644 --- a/src/spider/runtime/instr/Instr_000-01F.cpp +++ b/src/spider/runtime/instr/Instr_000-01F.cpp @@ -69,10 +69,34 @@ namespace spider { void CPU::COM() { // TODO: Implement COM + fetchOperDst(); + switch(_size){ + case 0b00: + _dst->_u8 = ~_dst->_u8; + case 0b01: + _dst->_u16 = ~_dst->_u16; + case 0b10: + _dst->_u32 = ~_dst->_u32; + case 0b11: + _dst->_u64 = ~_dst->_u64; + } + (this->*_post)(); } void CPU::NEG() { // TODO: Implement NEG + fetchOperDst(); + switch(_size){ + case 0b00: + _dst->_u8 = 1 + ~_dst->_u8; + case 0b01: + _dst->_u16 = 1+ ~_dst->_u16; + case 0b10: + _dst->_u32 = 1 + ~_dst->_u32; + case 0b11: + _dst->_u64 = 1 + ~_dst->_u64; + } + (this->*_post)(); } void CPU::EXS() {