public static void VADD(Accumulator accumulator, VectorAdderBuffer vectorAdderBuffer, VectorStack vectorStack0, VectorStack vectorStack1, StatusRegister statusRegister) { ushort operator1 = vectorStack0.pop(); ushort operator2 = vectorStack1.pop(); byte operator1MSB = (byte)((int)operator1 >> 7); byte operator2MSB = (byte)((int)operator2 >> 7); accumulator.accumulator = (byte)((int)operator1 + operator2); byte resMSB = (byte)((int)accumulator.accumulator >> 7); statusRegister.overflow = (operator1MSB == operator2MSB) && (operator2MSB != resMSB); statusRegister.carry = ((operator1 + operator2) > 255); setNegativeAndZeroFlags(accumulator, statusRegister); vectorAdderBuffer.vectorAdderBuffer = (byte)((int)vectorStack0.pop() + vectorStack1.pop()); }
public static void PUSH(VectorStack vectorStack, Accumulator accumulator) { vectorStack.push(accumulator.accumulator); }