// // Created by black on 12.06.25. // #ifndef REGISTER_H #define REGISTER_H /// Eine Registerklasse als Singleton implementiert. /// Als Speicher (Registers) wird ein int Array genutzt. class Register { private: Register() = default; /// Singleton instance static Register *m_instance; /// "Echter" Register Speicher int m_registers[32]; public: /// Singleton Logik Register(const Register &) = delete; Register(const Register &&) = delete; Register& operator=(const Register &) = delete; Register& operator=(const Register &&) = delete; ~Register() = default; static Register& getInstance(); /** * Speichert den angegebenen Wert im angegebenen Register * * @param reg Die Position des Registers * @param value Der Wert für das Register */ void setRegister(int reg, int value); /** * * @param reg Die Position des Registers * @return Der Wert des Registers */ int getRegister(int reg) const; }; #endif //REGISTER_H