From f78fe540ddf5be088b18f88282b8753c5013b5a5 Mon Sep 17 00:00:00 2001 From: Giulio De Pasquale Date: Thu, 25 May 2017 18:46:23 +0200 Subject: [PATCH] Sistemata size in insCode,Stack,Data --- vm/emulator.cpp | 1 + vm/vm.cpp | 1 + vm/vmas.cpp | 7 ++++--- vm/vmas.h | 6 +++--- 4 files changed, 9 insertions(+), 6 deletions(-) diff --git a/vm/emulator.cpp b/vm/emulator.cpp index 795e4a5..c70fa2e 100644 --- a/vm/emulator.cpp +++ b/vm/emulator.cpp @@ -24,6 +24,7 @@ int main(int argc, char *argv[]) { bytecode = new uint8_t[bytecode_size]; bytecode_if.read((char *)bytecode, bytecode_size); + printf("SIZE READ: %d\n", bytecode_size); VM vm((uint8_t *)argv[1], bytecode, bytecode_size); vm.run(); return 0; diff --git a/vm/vm.cpp b/vm/vm.cpp index ef0b69e..61569b2 100644 --- a/vm/vm.cpp +++ b/vm/vm.cpp @@ -175,6 +175,7 @@ bool VM::execMOVI(void) { uint16_t imm; dst = as.code[regs[IP] + 1]; imm = *((uint16_t *)&as.code[regs[IP] + 2]); + printf("IP: 0x%x | dst: 0x%x | imm: 0x%x\n", regs[IP], dst, imm); DBG_INFO(("MOVI %s, 0x%x\n", getRegName(dst), imm)); if (dst == IP) { DBG_ERROR(("Can't MOVI to IP!\n")); diff --git a/vm/vmas.cpp b/vm/vmas.cpp index 9425e5b..29b63fe 100644 --- a/vm/vmas.cpp +++ b/vm/vmas.cpp @@ -54,8 +54,9 @@ bool VMAddrSpace::allocate(void) { return true; } -bool VMAddrSpace::insCode(uint8_t *buf, uint8_t size) { +bool VMAddrSpace::insCode(uint8_t *buf, uint32_t size) { if (code) { + printf("SIZE IN insCode: %d\n", size); DBG_INFO(("Copying buffer into code section.\n")); memcpy(code, buf, size); } else { @@ -65,7 +66,7 @@ bool VMAddrSpace::insCode(uint8_t *buf, uint8_t size) { return true; } -bool VMAddrSpace::insStack(uint8_t *buf, uint8_t size) { +bool VMAddrSpace::insStack(uint8_t *buf, uint32_t size) { if (stack) { DBG_INFO(("Copying buffer into stack section.\n")); memcpy(stack, buf, size); @@ -76,7 +77,7 @@ bool VMAddrSpace::insStack(uint8_t *buf, uint8_t size) { return true; } -bool VMAddrSpace::insData(uint8_t *buf, uint8_t size) { +bool VMAddrSpace::insData(uint8_t *buf, uint32_t size) { if (this->code) { DBG_INFO(("Copying buffer into data section.\n")); memcpy(data, buf, size); diff --git a/vm/vmas.h b/vm/vmas.h index 68bd2d6..8321d0c 100644 --- a/vm/vmas.h +++ b/vm/vmas.h @@ -14,9 +14,9 @@ public: VMAddrSpace(uint32_t ss, uint32_t cs, uint32_t ds); uint8_t *stack, *code, *data; bool allocate(void); - bool insStack(uint8_t *buf, uint8_t size); - bool insCode(uint8_t *buf, uint8_t size); - bool insData(uint8_t *buf, uint8_t size); + bool insStack(uint8_t *buf, uint32_t size); + bool insCode(uint8_t *buf, uint32_t size); + bool insData(uint8_t *buf, uint32_t size); }; #endif \ No newline at end of file