Files
riscv-emulator/emulator/components/Register.h
2025-06-12 15:04:00 +03:00

50 lines
1.0 KiB
C++

//
// 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