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_0043_immediate_movs
|
||||||
listing_0044_register_movs
|
listing_0044_register_movs
|
||||||
listing_0045_challenge_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 <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
|
#define MEM_SIZE (1 << 16)
|
||||||
|
|
||||||
struct basic_string {
|
struct basic_string {
|
||||||
char str[4096];
|
char str[4096];
|
||||||
};
|
};
|
||||||
@ -22,6 +24,9 @@ int main(int argc, char *argv[]) {
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
u8 memory[MEM_SIZE];
|
||||||
|
memset((void *)memory, 0, MEM_SIZE);
|
||||||
|
|
||||||
const char *filename = argv[1];
|
const char *filename = argv[1];
|
||||||
|
|
||||||
printf("Filename: %s\n", filename);
|
printf("Filename: %s\n", filename);
|
||||||
@ -37,10 +42,7 @@ int main(int argc, char *argv[]) {
|
|||||||
|
|
||||||
fseek(fp, 0, SEEK_SET);
|
fseek(fp, 0, SEEK_SET);
|
||||||
|
|
||||||
u8 buffer[size + 1];
|
fread((void *)memory, sizeof(u8), size, fp);
|
||||||
memset((void *)buffer, 0, size + 1);
|
|
||||||
|
|
||||||
fread((void *)buffer, sizeof(u8), size, fp);
|
|
||||||
|
|
||||||
fclose(fp);
|
fclose(fp);
|
||||||
|
|
||||||
@ -55,7 +57,7 @@ int main(int argc, char *argv[]) {
|
|||||||
|
|
||||||
while (offset < size) {
|
while (offset < size) {
|
||||||
instruction decoded;
|
instruction decoded;
|
||||||
Sim86_Decode8086Instruction(size - offset, buffer + offset, &decoded);
|
Sim86_Decode8086Instruction(size - offset, memory + offset, &decoded);
|
||||||
|
|
||||||
if (decoded.Op) {
|
if (decoded.Op) {
|
||||||
offset += decoded.Size;
|
offset += decoded.Size;
|
||||||
|
Loading…
Reference in New Issue
Block a user