恩加罗是双栈架构的便携式虚拟机。指令集实质上是福斯的一个子集。虽然限定在其与底层操作系统相互作用的能力,应该是足以允许各种方案将被写入,并在其上运行。
该计划包括一些基本的文档,完整的源代码,机器来回编译器,和几个小例子。
用法:
./ngaro imagename
该指令集保持简约。指令的确切集合
变化偶尔,但以下列表已经稳定约一个
一年。 (最后三,处理基于端口的I / O模型,是新)
0 NOP不执行任何操作
1 LIT推值在以下细胞到堆栈
2 DUP重复顶部
在堆栈上项目
3一滴一滴的顶级项目
在堆栈上
4换汇前两名
栈上的项
5 PUSH推送的顶部项目
叠到
地址栈,降
TOS
6噗顶部项目
地址栈关闭
并把它放在
数据堆栈
7呼叫呼叫地址
下面的文字
对应于
8 JUMP跳转到地址
下列
文字对应
至
9;返回给调用者,
与使用CALL
10> JUMP条件跳转。它
比较TOS和NOS。
11位转移权
25 0;退出(拖放)如果
TOS是0
26 1+增量TOS 1
27 1-递减TOS 1
28中读入一个端口
29 OUT存储到一个端口
30 WAIT等待一个基于端口的
要求完成
如果不支持的操作码遇到的INTERAL IP寄存器设置为
存储器的末尾。图像代码的执行将暂停,当出现这种情况。
有几个指令都使用一个下面的单元格中包含地址或
值。这些都是:
1 LIT
7 CALL
8 JUMP
10>跳
11
什么是此版本的新:
- 在这个版本带来更新了所有实现的版本,并大幅更新文档
- 现在有写在Python和Ruby,Perl和Common Lisp的,x86汇编14实现,ANS第四,JavaScript的,复古的,Lua中,爪哇,C,C#,F#和Go。
评论没有发现