added immediate ALU commands

This commit is contained in:
black
2025-07-07 17:01:44 +02:00
parent 0479b1850a
commit ed8f732545

View File

@@ -45,6 +45,21 @@ void Alu::calculate(const std::vector<std::string> &commandVector) {
const auto register2 = Register::getInstance().getRegister(arg3);
const auto result = register1 ^ register2;
Register::getInstance().setRegister(arg1, result);
} else if (command == "addi") {
const auto register1 = Register::getInstance().getRegister(arg2);
const auto immediate = parseArgument(commandVector.at(1));
const auto result = register1 + immediate;
Register::getInstance().setRegister(arg1, result);
} else if (command == "andi") {
const auto register1 = Register::getInstance().getRegister(arg2);
const auto immediate = parseArgument(commandVector.at(1));
const auto result = register1 & immediate;
Register::getInstance().setRegister(arg1, result);
} else if (command == "ori") {
const auto register1 = Register::getInstance().getRegister(arg2);
const auto immediate = parseArgument(commandVector.at(1));
const auto result = register1 | immediate;
Register::getInstance().setRegister(arg1, result);
}
}