From d5d10480fad1711dd69467eff4dff4cba71954f8 Mon Sep 17 00:00:00 2001 From: Aryadev Chavali Date: Sun, 22 Oct 2023 19:33:27 +0100 Subject: Simple program which assembles instructions then executes them --- src/main.c | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) (limited to 'src/main.c') diff --git a/src/main.c b/src/main.c index c99ffb8..f66848c 100644 --- a/src/main.c +++ b/src/main.c @@ -42,19 +42,13 @@ int assemble_instructions(inst_t *instructions, size_t number, return 0; } -int main(void) +int main(int argc, char *argv[]) { - byte stack_data[256]; - vm_t vm = {0}; - vm_load_stack(&vm, stack_data, ARR_SIZE(stack_data)); - inst_t instructions[] = { - INST_BPUSH(0xfa), INST_BMOV(0), INST_BPUSH(0xfb), - INST_BMOV(1), INST_BPUSH(0xfc), INST_BMOV(2), - INST_BPUSH(0xfd), INST_BMOV(3), INST_BPUSH_REG(3), - INST_BPUSH_REG(2), INST_BPUSH_REG(1), INST_BPUSH_REG(0), - }; - vm_load_program(&vm, instructions, ARR_SIZE(instructions)); - for (size_t i = 0; i < ARR_SIZE(instructions); ++i) - vm_execute(&vm); + const char *filename = "out.bin"; + if (argc >= 2) + filename = argv[1]; + inst_t instructions[] = {INST_HALT}; + assemble_instructions(instructions, ARR_SIZE(instructions), filename); + interpret_bytecode(filename); return 0; } -- cgit v1.2.3-13-gbd6f