;;; -*- Mode:LISP; Package:(TEST :use (K LISP)); Base:10; Readtable:ZL -*- (import '(nc:defafun nc:ndisassemble nc:prins nc:link)) (do-symbols (s 'k) (export s 'k)) (defafun foo () (return a0)) ;;; Count in processor lights (defafun lights () loop (alu r+1 (%register g0 0 0) (%register g0 0 0) (%register g0 0 0)) (alu-field field-pass (%register g1 0 1) (%register g0 0 0) (%register g1 0 1) (byte 3 -19)) (alu-field field-not memory-control (%register g1 0 1) memory-control hw:%%memory-control-leds) (nop) (unconditional-branch loop ())) ;---------------------------------------------------------------- (defafun count-calls () loop (alu r+1 (%register g0 0 0) (%register g0 0 0) (%register g0 0 0)) (alu-field field-not memory-control (%register g0 0 0) memory-control hw:%%memory-control-leds) (MOVEI O0 '20 CH-OPEN) (MOVEI O1 '12) (MOVEI O2 '6) (KCALL fib 3 r0 NIL) (jump #x100 ())) ;---------------------------------------------------------------- (defun fib (n) (if (< n 2) n (+ (fib (1- n)) (fib (- n 2))))) (defafun fib (n) FIB_2 (MOVEI R0 (QUOTE 2)) (ALU L-R NOP-NO-OVERFLOW-TRAP A0 R0 BW-24) (TEST BR-NOT-LESS-THAN) (BRANCH C_6 NIL) C_5 (RETURN A0) C_6 (ALU R-1 O0 A0 A0 BW-24 CH-OPEN) (KCALL FIB (QUOTE 1) A2 NIL) C_19 (MOVEI R0 (QUOTE 2) CH-OPEN) (ALU L-R O0 A0 R0 BW-24) (KCALL FIB (QUOTE 1) A1 NIL) C_17 (nop) (ALU L+R RETURN A2 A1 BW-24 CH-RETURN NEXT-PC-RETURN))