50 lines
1.0 KiB
C++
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
|