From 22b08dbf32e9c5de1f10c19897422168100fa639 Mon Sep 17 00:00:00 2001 From: Mistivia Date: Sat, 7 Dec 2024 18:02:04 +0800 Subject: add README for exmaples --- examples/README.md | 7 +++++++ examples/fibo.asm | 10 +++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 examples/README.md diff --git a/examples/README.md b/examples/README.md new file mode 100644 index 0000000..4a9a530 --- /dev/null +++ b/examples/README.md @@ -0,0 +1,7 @@ +## Assemble + + ../assembler/fvm-as fibo.asm fibo.bin + +## Run + + ./fvm fibo.bin diff --git a/examples/fibo.asm b/examples/fibo.asm index a1a3e82..7aa0cb9 100644 --- a/examples/fibo.asm +++ b/examples/fibo.asm @@ -1,13 +1,20 @@ - imm 40 + ;; fibo(30) + imm 30 fibo rel call + ;; pop arguments and push return value to stack pop rv + ;; call print_number (syscall number is 1) imm 1 syscall exit fibo: + ;; setup stack pointer and base pointer bp sp sbp + ;; get first argument imm 2 bpick + ;; if (x > 2) then imm 2 gt .else rel jz + ;; return fibo(x - 2) + fibo(x - 1) imm 2 bpick imm 1 sub fibo rel call @@ -19,6 +26,7 @@ fibo: srv .end rel jmp .else: + ;; else return 1 imm 1 srv .end rel jmp .end: -- cgit v1.0