From 47889cb5dce63c68e8b6323315970b762848760e Mon Sep 17 00:00:00 2001 From: black Date: Wed, 9 Jul 2025 13:12:56 +0200 Subject: [PATCH] added "slli" command --- src/components/Alu.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/components/Alu.cpp b/src/components/Alu.cpp index d6e74e4..01559c5 100644 --- a/src/components/Alu.cpp +++ b/src/components/Alu.cpp @@ -167,7 +167,7 @@ void Alu::calculate(const std::vector &commandVector) { const auto posOffset = reg.getRegister(arg2); // Setzt die stream Position auf den gegebenen Wert & erhöht sie um den angegebenen Offset man.setStreamPosition(streamPosLabel); - for (int i = 0; i < posOffset; ++i) { + for (int i = 1; i < posOffset; ++i) { man.gotoNextStreamLine(); } } else if (command == "j") { @@ -176,6 +176,12 @@ void Alu::calculate(const std::vector &commandVector) { for (int i = 1; i < arg1; i++) { man.gotoNextStreamLine(); } + } else if (command == "slli") { + // Shift Left Logical Immediate Befehl + const auto register1 = reg.getRegister(arg2); + // Bitshifte den Wert aus Register1 mit dem immediate value + const auto result = register1 << arg3; + reg.setRegister(arg1, result); } else { std::cerr << "Befehl " << command << " wurde nicht gefunden!"; }