diff options
author | David Phillips <david@sighup.nz> | 2019-08-04 00:13:59 +1200 |
---|---|---|
committer | David Phillips <david@sighup.nz> | 2019-08-04 00:13:59 +1200 |
commit | 9aa02bebf295ce9436451e0ce85db7717a6c9f81 (patch) | |
tree | cf95f8e06600c3359a7db6c6b08e6e055acf0d4c /input | |
parent | 89917ead30321ff430fa2eab8e8d96ef4178d994 (diff) | |
download | toy-cpu-assembler-9aa02bebf295ce9436451e0ce85db7717a6c9f81.tar.xz |
Add initial emulator implementation
This emulator provides a rough way for binaries designed for this CPU to be
executed in a virtual/emulated CPU for testing purposes. This patch also adds
a small test setup for automated assembly, execution and checking of register
postconditions for programs.
Diffstat (limited to 'input')
-rw-r--r-- | input/input_bin.c | 1 | ||||
-rw-r--r-- | input/input_bin.h | 1 |
2 files changed, 2 insertions, 0 deletions
diff --git a/input/input_bin.c b/input/input_bin.c index 8f4c827..eafcca1 100644 --- a/input/input_bin.c +++ b/input/input_bin.c @@ -151,6 +151,7 @@ static int disasm_file(FILE *f) /* just used up 4 bytes, and couldn't read more. break out*/ goto read_eof; } + /* FALLTHROUGH */ case 2: /* have just read 2 bytes: shift down and pack new in */ inst = extra; diff --git a/input/input_bin.h b/input/input_bin.h index 00e296c..613f280 100644 --- a/input/input_bin.h +++ b/input/input_bin.h @@ -1,6 +1,7 @@ #ifndef INPUT_BIN_H #define INPUT_BIN_H +size_t disasm_single(struct instruction *i, uint16_t pc, uint16_t inst, uint16_t extra); int input_bin(FILE *f, struct instruction **i, size_t *i_count); #endif /* INPUT_BIN_H */ |