Calculating the Fibonacci sequence using 16 bit words on ATTARC 1.0
This video demonstrates the ATTARC CPU calculating the Fibonacci sequence using 16 bit words.
You'll probably want to speed it up.
// calculate 16 bit Fibonacci sequence
import {
ZERO, NULL, INVERT, ISZERO, ADD1_C, R0JC, R1, R2, R3, R4, R5, R6, R7SC, PC, LOG_A, LOG_B, ADD1_A, ADD1_B, XOR, AND, OR, ADD1, RNG, Program
} from "../asm";
const P = new Program();
export default P;
P
.clear(ADD1_A)
.clear(ADD1_B)
.clear(ADD1_C)
.clear(R0JC) // 1L
.clear(R1) // 1L
.clear(R2) // 1H
.move(1, R3) // 2L
.clear(R4) // 2H
.add(R1, R3, R1)
.label('loop')
.addc(R2, R4, R2)
.jumpcnz('halt')
.add(R1, R3, R3)
.addc(R2, R4, R4)
.jumpcnz('halt')
.add(R1, R3, R1)
.addc(R2, R4, R2)
.jumpcnz('halt')
.add(R1, R3, R3)
.addc(R2, R4, R4)
.jumpcz('loop', [
() => P.add(R1, R3, R1)
])
.label('halt')
.jump('halt')
;
Comments
Post a Comment