Files
riscv-emulator/emulator/components/Register.h
2025-07-04 21:51:43 +02:00

51 lines
1.0 KiB
C++

//
// Created by black on 12.06.25.
//
#ifndef REGISTER_H
#define REGISTER_H
#include <array>
/// 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
std::array<int, 32> m_registers;
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