问题描述
我正在阅读第 6. The Java Virtual Machine Instruction Set 章
当我阅读下面摘录中的“操作数堆栈”时,我不确定如何解释该部分。尤其是箭头,是栈内还是栈外的意思?
mnemonic
Operation
Short description of the instruction
Format
mnemonic
operand1
operand2
...
Forms
mnemonic = opcode
Operand Stack
...,value1,value2 →
...,value3
Description
A longer description detailing constraints on operand stack contents or constant pool entries,the operation performed,the type of the results,etc.
解决方法
我想这在“注释”部分有解释:
在 Java 虚拟机指令的描述中,指令执行对当前帧(第 2.6 节)的操作数堆栈(第 2.6.2 节)的影响以文本形式表示,堆栈从左到右增长,每个值分别表示。因此,
...,value1,value2 →
...,结果
显示了一个操作,它开始时将 value2 放在操作数堆栈的顶部,而 value1 就在它的下面。
,顶部有说明
在Java虚拟机指令的描述中, 指令执行对操作数堆栈 (§2.6.2) 的影响 当前帧 (§2.6) 以文本形式表示,带有堆栈 从左到右增长,每个值分别表示。 因此,
...,value2 →
...,result
显示了一个操作,它以在操作数的顶部有 value2 开始 与 value1 的堆栈就在它下面。作为执行的结果 指令,value1 和 value2 从操作数堆栈中弹出并 替换为结果值,结果值已由 操作说明。操作数栈的剩余部分,由一个 省略号 (...),不受指令执行的影响。
long 和 double 类型的值由单个条目表示 操作数栈。