added immediate ALU commands
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user