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 <stdio.h> #include <string.h> +#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;