Compiler construction java virtualmachine中的ioper命令isub idiv顺序
当查看ioper命令时,imul和iadd是显而易见的,但如果我有: sipush 9Compiler 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位于堆栈顶部,
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