Compare commits
3 Commits
c320371432
...
e9d7a608f0
Author | SHA1 | Date | |
---|---|---|---|
e9d7a608f0 | |||
d980153185 | |||
90128fae8f |
1
8086_sim/.gitignore
vendored
1
8086_sim/.gitignore
vendored
@ -1,3 +1,4 @@
|
||||
sim86
|
||||
listing_0043_immediate_movs
|
||||
listing_0044_register_movs
|
||||
listing_0045_challenge_register_movs
|
||||
|
BIN
8086_sim/sim86
BIN
8086_sim/sim86
Binary file not shown.
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user