X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=3b_sim%2Fcmem.hpp;fp=3b_sim%2Fcmem.hpp;h=195fe6c1077cbda3e6e6dca735d233cab393d397;hb=31d88f201bf427d70924b9737ecdb6e0611939d3;hp=0000000000000000000000000000000000000000;hpb=e9058c9f44ef4aa3aed9503414baac94ba17c54e;p=calu.git diff --git a/3b_sim/cmem.hpp b/3b_sim/cmem.hpp new file mode 100644 index 0000000..195fe6c --- /dev/null +++ b/3b_sim/cmem.hpp @@ -0,0 +1,30 @@ +#ifndef __CMEM_H__ +#define __CMEM_H__ + +#include "cdat.hpp" +#include +#include + +typedef int MEMORY_ADDRESS; + +/** + * Name: CMem + * Purpose: Class representing the memory of our emulated machine + */ +template +class CMem +{ +private: + //MAX_MEMORY-1 zugreifbare Speicherzellen + const int MAX_MEMORY; + std::vector m_memory; +public: + //wert aus referenz auslesen und in vetor speichern (index zugriff!) + //address 0 ist ProgramCounter + void set(const MEMORY_ADDRESS address, const T& data); + //retuniert referenz eines cdat objekts mit dem Wert von address + void get(const MEMORY_ADDRESS address, T& data) const; + CMem(int size) : MAX_MEMORY(size), m_memory(size) {}; +}; + +#endif