From 34483e07a0548d32651cda4ca4282f3cf8cae870 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnther=20Neuwirth?= Date: Tue, 12 May 2009 15:27:58 +0200 Subject: adding rest of files --- ue3/mycpu/cmem.cpp | 65 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 ue3/mycpu/cmem.cpp (limited to 'ue3/mycpu/cmem.cpp') diff --git a/ue3/mycpu/cmem.cpp b/ue3/mycpu/cmem.cpp new file mode 100644 index 0000000..d27f74e --- /dev/null +++ b/ue3/mycpu/cmem.cpp @@ -0,0 +1,65 @@ +/** + * @module cprogram + * @author Guenther Neuwirth (0626638), Manuel Mausz (0728348) + * @brief class for parsing and saving a program + * @date 11.05.2009 + */ + +#include +#include +#include +#include +#include +#include "cdat.h" +#include "cmem.h" + + + +using namespace std; +using namespace boost; + +CMem::CMem(const std::string& memfile) : + m_memfile(memfile) +{ + + dump(std::cout); + +} + +/*----------------------------------------------------------------------------*/ + +CMem::~CMem() +{ + +} + +/*----------------------------------------------------------------------------*/ + +CDat& CMem::getRegister(const string reg) +{ + istringstream stmp ( + reg.substr(reg.find_first_of("R") + 1, reg.size()) + ); + + unsigned int regnr; + stmp >> regnr; + + // if (regnr >= MAX_REGISTER ) + + if (regnr == m_registers.size()) + { + m_registers.push_back(CDat((int)0)); + return m_registers[m_registers.size() - 1]; + } + + return m_registers[regnr]; +} +/*----------------------------------------------------------------------------*/ + +#ifdef DEBUG +void CMem::dump(std::ostream& out) +{ + out << endl << "Memory file:" << endl << m_memfile << endl; + out << endl << "Memory file content:" << endl; +} +#endif -- cgit v1.2.3