Compiler construction java virtualmachine中的ioper命令isub idiv顺序

Compiler construction java virtualmachine中的ioper命令isub idiv顺序,compiler-construction,jvm,vm-implementation,Compiler Construction,Jvm,Vm Implementation,当查看ioper命令时,imul和iadd是显而易见的,但如果我有: sipush 9 sipush 3 西普什4 堆栈看起来像 4 3 九, 如果下一个是isub,我要从3中减去4吗?还是4比3 cheers说明的语义在中定义。具体而言,定义如下: 操作数堆栈 …,值1,值2→ …,结果 描述 value1和value2的类型必须为int。这些值从操作数堆栈中弹出。int结果是value1-value2。结果被推送到操作数堆栈上 符号…,value1,value2表示value2位于堆栈顶部,

当查看ioper命令时,imul和iadd是显而易见的,但如果我有:

sipush 9
sipush 3
西普什4

堆栈看起来像

4
3
九,

如果下一个是isub,我要从3中减去4吗?还是4比3


cheers

说明的语义在中定义。具体而言,定义如下:

操作数堆栈 …,值1,值2→

…,结果

描述 value1和value2的类型必须为
int
。这些值从操作数堆栈中弹出。
int
结果是
value1-value2
。结果被推送到操作数堆栈上

符号
…,value1,value2
表示
value2
位于堆栈顶部,而
value1
位于堆栈下方(堆栈的其余部分表示为
,因为
isub
不接触它)

因此,在您的示例中是
3-4
,因为
value1=3
value2=4