diff options
| author | Jan Tuomi <jans.tuomi@gmail.com> | 2023-04-11 14:38:51 +0300 |
|---|---|---|
| committer | Jan Tuomi <jans.tuomi@gmail.com> | 2023-04-11 14:38:51 +0300 |
| commit | dd3c90011ab33717e4c4175cd6804ae86582135f (patch) | |
| tree | 60519868e7c329eef0dd5eb22026e8c6ed85245a /src/test_fibo.atk16 | |
| parent | da14e7ca7f31cb4b9a975dbe349fb4d385592b9c (diff) | |
Refactor folder
Diffstat (limited to 'src/test_fibo.atk16')
| -rw-r--r-- | src/test_fibo.atk16 | 66 |
1 files changed, 0 insertions, 66 deletions
diff --git a/src/test_fibo.atk16 b/src/test_fibo.atk16 deleted file mode 100644 index 8bb7a6e..0000000 --- a/src/test_fibo.atk16 +++ /dev/null @@ -1,66 +0,0 @@ -@opt stack_pointer RF -@opt csr_scratch RH -@use ext_std:* - -; jump over data segment - jpi program - -; data segment -@label ram_offset - 0x8000 - -@label program -; set up stack pointer to point to beginning of RAM - ldi ram_offset RA - ldr RA RF - -; call fibo subroutine with parameter 10 - ldi 10 RA - csi fibo - hlt - -@label fibo -; function fibo -; parameters: -; RA n : u16 -; return value: -; RA fibo(n) : u16 - -; store RB, RC on stack - spu RB - spu RC -; if n < 2, return n - subi RA 2 RA - bri sign fibo_early -; store also RD on stack - spu RD -; a = 0 - ldi 0 RB -; b = 1 - ldi 1 RC -@label fibo_loop -; v = a + b - add RB RC RD -; a = b - mov RC RB -; b = v - mov RD RC -; n -= 1 - dec RA -; loop while n > 0 - bri zero fibo_done - jpi fibo_loop -@label fibo_early -; restore used registers - spo RC - spo RB -; return from subroutine - rsr -@label fibo_done - mov RD RA -; restore used registers - spo RD - spo RC - spo RB -; return from subroutine - rsr |
