diff --git a/include/memory.h b/include/memory.h index 7c515f9..70dda4e 100644 --- a/include/memory.h +++ b/include/memory.h @@ -8,6 +8,7 @@ private: public: uint8_t *init(size_t memorysize); uint8_t read_uint8(uint32_t addr); + uint32_t read_uint32(uint32_t addr); void write_uint8(uint32_t addr, uint8_t data); void write_uint32(uint32_t addr, uint32_t data); size_t get_memsize(); diff --git a/memory.cpp b/memory.cpp index 082b520..22a687f 100644 --- a/memory.cpp +++ b/memory.cpp @@ -11,6 +11,15 @@ uint8_t Memory::read_uint8(uint32_t addr){ return this->memory[addr]; } +uint32_t Memory::read_uint32(uint32_t addr){ + uint32_t data = 0x00; + for (int i = 0;i < 4;i++) { + data = data << 8; + ret += this->memory[addr + i]; + } + return data; +} + void Memory::write_uint8(uint32_t addr, uint8_t data){ this->memory[addr] = data; }