From d980153185ae32d094c127179eeb0541bef3e275 Mon Sep 17 00:00:00 2001 From: Abdelrahman Said Date: Sat, 15 Apr 2023 23:08:14 -0700 Subject: [PATCH] Read the instructions into simulated memory instead of separate buffer --- 8086_sim/sim86.cpp | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/8086_sim/sim86.cpp b/8086_sim/sim86.cpp index f1b2525..3a63360 100644 --- a/8086_sim/sim86.cpp +++ b/8086_sim/sim86.cpp @@ -6,6 +6,8 @@ #include #include +#define MEM_SIZE (1 << 16) + struct basic_string { char str[4096]; }; @@ -22,6 +24,9 @@ int main(int argc, char *argv[]) { return 1; } + u8 memory[MEM_SIZE]; + memset((void *)memory, 0, MEM_SIZE); + const char *filename = argv[1]; printf("Filename: %s\n", filename); @@ -37,10 +42,7 @@ int main(int argc, char *argv[]) { fseek(fp, 0, SEEK_SET); - u8 buffer[size + 1]; - memset((void *)buffer, 0, size + 1); - - fread((void *)buffer, sizeof(u8), size, fp); + fread((void *)memory, sizeof(u8), size, fp); fclose(fp); @@ -55,7 +57,7 @@ int main(int argc, char *argv[]) { while (offset < size) { instruction decoded; - Sim86_Decode8086Instruction(size - offset, buffer + offset, &decoded); + Sim86_Decode8086Instruction(size - offset, memory + offset, &decoded); if (decoded.Op) { offset += decoded.Size;