diff options
author | Aryadev Chavali <aryadev@aryadevchavali.com> | 2023-11-01 18:49:59 +0000 |
---|---|---|
committer | Aryadev Chavali <aryadev@aryadevchavali.com> | 2023-11-01 18:49:59 +0000 |
commit | 6677424f12a7d2c399725c07430b6e566abe648f (patch) | |
tree | 7c36176789a636a5cb8415fa2cbfae138d4469cb /examples/fib.c | |
parent | f4ae33949b030facd5579236ab2d37bdc56416ae (diff) | |
download | ovm-6677424f12a7d2c399725c07430b6e566abe648f.tar.gz ovm-6677424f12a7d2c399725c07430b6e566abe648f.tar.bz2 ovm-6677424f12a7d2c399725c07430b6e566abe648f.zip |
Deleted fib.c as fib.asm replaces it
Diffstat (limited to 'examples/fib.c')
-rw-r--r-- | examples/fib.c | 80 |
1 files changed, 0 insertions, 80 deletions
diff --git a/examples/fib.c b/examples/fib.c deleted file mode 100644 index aceab48..0000000 --- a/examples/fib.c +++ /dev/null @@ -1,80 +0,0 @@ -/* Copyright (C) 2023 Aryadev Chavali - - * You may distribute and modify this code under the terms of the - * GPLv2 license. You should have received a copy of the GPLv2 - * license with this file. If not, please write to: - * aryadev@aryadevchavali.com. - - * Created: 2023-10-23 - * Author: Aryadev Chavali - * Description: An example virtual machine program which computes and - * prints fibonacci numbers. Note that by default the virtual machine - * just rolls overflows over, so this program will never terminate. - */ - -#include <assert.h> -#include <stdio.h> -#include <string.h> - -#include <lib/inst.h> -#include <vm/runtime.h> - -int main(void) -{ - inst_t instructions[] = { - // MOV the values 1 and 1 to REG[0] and REG[1] respectively - INST_PUSH(WORD, 1), - INST_MOV(WORD, 0), - INST_PUSH(WORD, 1), - INST_MOV(WORD, 1), - - // Print value at register 0 with newline. - INST_PUSH_REG(WORD, 0), // <-- # - INST_PRINT(WORD), - INST_PUSH(BYTE, '\n'), - INST_PRINT(CHAR), - - // Print value at register 1 with newline - INST_PUSH_REG(WORD, 1), - INST_PRINT(WORD), - INST_PUSH(BYTE, '\n'), - INST_PRINT(CHAR), - - /* Compute the next pair of fibonacci numbers */ - // REG[0] + REG[1] - INST_PUSH_REG(WORD, 0), - INST_PUSH_REG(WORD, 1), - INST_PLUS(WORD), - - // Mov REG[0] + REG[1] to REG[0] - INST_MOV(WORD, 0), - - // REG[0] + REG[1] - INST_PUSH_REG(WORD, 0), - INST_PUSH_REG(WORD, 1), - INST_PLUS(WORD), - - // Mov REG[0] + REG[1] to REG[1] - INST_MOV(WORD, 1), - - // Jump to the point # - INST_JUMP_ABS(4), - INST_HALT, - }; - - byte stack[256]; - vm_t vm = {0}; - vm_load_stack(&vm, stack, ARR_SIZE(stack)); - vm_load_program(&vm, instructions, ARR_SIZE(instructions)); - err_t err = vm_execute_all(&vm); - - if (err) - { - const char *error_str = err_as_cstr(err); - fprintf(stderr, "[ERROR]: %s\n", error_str); - fprintf(stderr, "[ERROR]: VM Trace:\n"); - vm_print_all(&vm, stderr); - return 255 - err; - } - return 0; -} |