计算模型与C语言基础入门
1. Forth编译器与解释器开发
在开始编写自己的Forth解释器之前,要确保掌握了Forth语言的基础知识。若不确定,可使用如gForth这样的免费Forth解释器进行练习。
1.1 静态字典与解释器
从原生单词的静态字典开始,后续无法在运行时定义新单词。使用如下宏定义:
- native 宏:接受三个参数,分别为单词名称、单词标识符的一部分和标志。它会在 .data 段创建并填充头部,在 .text 段创建一个标签,该标签表示宏实例后面的汇编代码。
由于大多数单词不使用标志,可对 native 进行重载,使其能接受两个或三个参数。示例代码如下:
%macro native 2
native %1, %2, 0
%endmacro
对比不使用宏和使用宏定义Forth字典的两种方式:
- 不使用宏:
section .data
w_plus:
dq w_mul ; previous
db '+',0
db 0
xt_plus:
dq plus_impl
section .text
plus_impl:
pop rax
add [rsp], rax
jmp next
- 使用宏:
超级会员免费看
订阅专栏 解锁全文
6842

被折叠的 条评论
为什么被折叠?



