附录C Diksam Virtual Machine指令集

本章将要展示Diksam VM(DVM)的指令集一览表 [1]

C.1 范例

指令 

DVM指令的助记符。

操作数的类型 

byte为一个字节的正整数, short为两个字节的正整数(大尾序), cp指的是常量池的索引值,实际和 short相同。

含义 

表示当前指令的含义。

栈 

表示指令执行时栈的变化。 [] 内表示参与操作的栈顶值的类型。右端是操作后的栈顶。在DVM 中没有 boolean 和 function 类型,实际上它们都是 int值,只不过为了容易理解而写成了 boolean、 function。

在没有给出运算符的一侧(箭头的左侧),顺序是有意义的,因此 [int1 int2]的运算结果会被描述为 [(int1 / int2)]。结果的类型以C语言的运算符为基准,例如 [(int1 > int2)]的类型为 boolean。

since 

表示指令对应的是哪个版本。

C.2 指令一览表

figure_0378_0096

(续)

figure_0379_0097

(续)

figure_0380_0098

(续)

figure_0381_0099

(续)

figure_0382_0100

(续)

figure_0383_0101

(续)

figure_0384_0102

(续)

figure_0385_0103

(续)

figure_0386_0104

注 释

[1]. 在语言的设计中似乎列出了一些不支持的指令,请把它们看作是不能保证执行正确性的隐藏功能。