aboutsummaryrefslogtreecommitdiff
path: root/qtmips_machine/programmemory.h
diff options
context:
space:
mode:
Diffstat (limited to 'qtmips_machine/programmemory.h')
-rw-r--r--qtmips_machine/programmemory.h22
1 files changed, 22 insertions, 0 deletions
diff --git a/qtmips_machine/programmemory.h b/qtmips_machine/programmemory.h
new file mode 100644
index 0000000..84b2f31
--- /dev/null
+++ b/qtmips_machine/programmemory.h
@@ -0,0 +1,22 @@
+#ifndef PROGRAMMEMORY_H
+#define PROGRAMMEMORY_H
+
+#include <vector>
+#include "programloader.h"
+#include "memory.h"
+#include "instruction.h"
+
+class ProgramMemory {
+public:
+ ProgramMemory(ProgramLoader *loader, MemoryAccess *memory);
+
+ Instruction *at(std::uint32_t address); // return instruction isntance for given address
+
+private:
+ MemoryAccess *memory;
+ Instruction *decode_r(std::uint32_t dt);
+ Instruction *decode_j(std::uint32_t dt);
+ Instruction *decode_i(std::uint32_t dt);
+};
+
+#endif // PROGRAMMEMORY_H