搞了个可综合的16位的cpu(自娱自乐),两个通用寄存器,一个ram,一个人rom,ALU能进行+-&|!运算和>,>=,<,<=,==,!=的跳转指令。
正在做lisp程序转汇编,目前能实现+,-,and,or,not,set,let(只能做成let*),progn,loop,dotimes,以下是测试生成Fibonacci数列:
(let ((x 1)(y 1)(z (+ x y))(k 7))
(dotimes (n (+ 10 k))
(set x y)
(set y z)
(set z (+ x y)))
z)
编译:
运行:
目前正在做判断是否为真,毕竟对于lisp来讲0不是nil,SBCL的compiler里有关汇编的那块代码当初往PPC平台交叉编译时也是看得我一头雾水
正在做lisp程序转汇编,目前能实现+,-,and,or,not,set,let(只能做成let*),progn,loop,dotimes,以下是测试生成Fibonacci数列:
(let ((x 1)(y 1)(z (+ x y))(k 7))
(dotimes (n (+ 10 k))
(set x y)
(set y z)
(set z (+ x y)))
z)
编译:
运行:
目前正在做判断是否为真,毕竟对于lisp来讲0不是nil,SBCL的compiler里有关汇编的那块代码当初往PPC平台交叉编译时也是看得我一头雾水