⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 appa.html

📁 Inside the java virtualMachine,深入研究java虚拟机
💻 HTML
📖 第 1 页 / 共 5 页
字号:
<P>The top four words of the operand stack must be two <FONT FACE="Courier New">double</FONT>s, <I>value1</I> and <I>value2</I>. To execute the <FONT FACE="Courier New">dcmpg</FONT> instruction, the Java Virtual Machine pops <I>value1</I> and <I>value2</I> off the operand stack and compares one against the other. If <I>value1</I> equals <I>value2</I>, the virtual machine pushes onto the operand stack <FONT FACE="Courier New">int</FONT> <I>result</I> zero. Else, if <I>value1</I> is greater than <I>value2</I>, the virtual machine pushes onto the operand stack <FONT FACE="Courier New">int</FONT> <I>result</I> one. Otherwise, if <I>value1</I> is less than <I>value2</I>, the virtual machine pushes onto the operand stack <FONT FACE="Courier New">int</FONT> <I>result</I> negative one. If either <I>value1</I> or <I>value2</I> equals NaN (Not a Number), the virtual machine pushes onto the operand stack <FONT FACE="Courier New">int</FONT> <I>result</I> one.</P>
<P>The <I>result</I> produced by the <FONT FACE="Courier New">fcmpg</FONT> instruction is governed by the rules of IEEE 754 floating point arithmetic. Note that the <FONT FACE="Courier New">dcmpg</FONT> instruction differs from the the <FONT FACE="Courier New">dcmpl</FONT> instruction only in its treatment of NaN. For more information about the <FONT FACE="Courier New">dcmpg</FONT> instruction, see Chapter 16, &quot;Control Flow.&quot;</P>
<P><H3><FONT FACE="Courier New">dcmpl</H3></FONT> - Compare <FONT FACE="Courier New">double</FONT>s (-1 on NaN)</P>
<P><H3>Opcode:</H3> 151 (0x97)</P>
<P><H3>Instruction Format:</H3> <FONT FACE="Courier New">dcmpl</FONT></P>
<P><H3>Stack:</H3></P>
<P>Before:<I>..., value1.word1, value1.word2, value2.word1, value2.word2</P></EM></H4>
<P>After:<I>..., result</P></EM></H4>
<P><H3>Description:</H3></P>
<P>The top four words of the operand stack must be two <FONT FACE="Courier New">double</FONT>s, <I>value1</I> and <I>value2</I>. To execute the <FONT FACE="Courier New">dcmpg</FONT> instruction, the Java Virtual Machine pops <I>value1</I> and <I>value2</I> off the operand stack and compares one against the other. If <I>value1</I> equals <I>value2</I>, the virtual machine pushes onto the operand stack <FONT FACE="Courier New">int</FONT> <I>result</I> zero. Else, if <I>value1</I> is greater than <I>value2</I>, the virtual machine pushes onto the operand stack <FONT FACE="Courier New">int</FONT> <I>result</I> one. Otherwise, if <I>value1</I> is less than <I>value2</I>, the virtual machine pushes onto the operand stack <FONT FACE="Courier New">int</FONT> <I>result</I> negative one. If either <I>value1</I> or <I>value2</I> equals NaN (Not a Number), the virtual machine pushes onto the operand stack <FONT FACE="Courier New">int</FONT> <I>result</I> negative one.</P>
<P>The <I>result</I> produced by the <FONT FACE="Courier New">fcmpl</FONT> instruction is governed by the rules of IEEE 754 floating point arithmetic. Note that the <FONT FACE="Courier New">dcmpl</FONT> instruction differs from the the <FONT FACE="Courier New">dcmpg</FONT> instruction only in its treatment of NaN. For more information about the <FONT FACE="Courier New">dcmpl</FONT> instruction, see Chapter 16, &quot;Control Flow.&quot;</P>
<P><H3><FONT FACE="Courier New">dconst_0</H3></FONT> - Push <FONT FACE="Courier New">double</FONT> constant 0.0</P>
<P><H3>Opcode:</H3> 14 (0xe)</P>
<P><H3>Instruction Format:</H3> <FONT FACE="Courier New">dconst_0</FONT></P>
<P><H3>Stack:</H3></P>
<P>Before:<I>...</P></EM></H4>
<P>After:<I>..., &lt;0.0</FONT>-word1, &lt;0.0</FONT>-word2</P></EM></H4>
<P><H3>Description:</H3></P>
<P>To execute the <FONT FACE="Courier New">dconst_0</FONT> instruction, the Java Virtual Machine pushes the <FONT FACE="Courier New">double</FONT> constant 0.0 onto the operand stack.</P>
<P>For more information about the <FONT FACE="Courier New">dconst_0</FONT> instruction, see Chapter 10, &quot;Stack Operations.&quot;</P>
<P><H3><FONT FACE="Courier New">dconst_1</H3></FONT> - Push <FONT FACE="Courier New">double</FONT> constant 1.0</P>
<P><H3>Opcode:</H3> 15 (0xf)</P>
<P><H3>Instruction Format:</H3> <FONT FACE="Courier New">dconst_1</FONT></P>
<P><H3>Stack:</H3></P>
<P>Before:<I>...</P></EM></H4>
<P>After:<I>..., &lt;1.0</FONT>-word1, &lt;1.0</FONT>-word2</P></EM></H4>
<P><H3>Description:</H3></P>
<P>To execute the <FONT FACE="Courier New">dconst_1</FONT> instruction, the Java Virtual Machine pushes the <FONT FACE="Courier New">double</FONT> constant 1.0 onto the operand stack.</P>
<P>For more information about the <FONT FACE="Courier New">dconst_1</FONT> instruction, see Chapter 10, &quot;Stack Operations.&quot;</P>
<P><H3><FONT FACE="Courier New">ddiv</H3></FONT> - Divide <FONT FACE="Courier New">double</FONT>s</P>
<P><H3>Opcode:</H3> 111 (0x6f)</P>
<P><H3>Instruction Format:</H3> <FONT FACE="Courier New">ddiv</FONT></P>
<P><H3>Stack:</H3></P>
<P>Before:<I>..., value1.word1, value1.word2, value2.word1, value2.word2</P></EM></H4>
<P>After:<I>..., result.word1, result.word2</P></EM></H4>
<P><H3>Description:</H3></P>
<P>The top four words of the operand stack must be two <FONT FACE="Courier New">double</FONT>s, <I>value1</I> and <I>value2</I>. To execute the <FONT FACE="Courier New">ddiv</FONT> instruction, the Java Virtual Machine pops <I>value1</I> and <I>value2</I>, divides <I>value1</I> by <I>value2</I> (<I> value1 / value2</I>), and pushes the <FONT FACE="Courier New">double</FONT> <I>result</I>. The <I>result</I> produced by the <FONT FACE="Courier New">ddiv</FONT> instruction is governed by the rules of IEEE 754 floating point arithmetic.</P>
<P>For more information about the <FONT FACE="Courier New">ddiv</FONT> instruction, see Chapter 14, &quot;Floating Point Arithmetic.&quot;</P>
<P><H3><FONT FACE="Courier New">dload</H3></FONT> - Load <FONT FACE="Courier New">double</FONT> from local variable</P>
<P><H3>Opcode:</H3> 24 (0x18)</P>
<P><H3>Instruction Format:</H3> <FONT FACE="Courier New">dload</FONT>, <I>index</P></EM></H4>
<P><H3>Stack:</H3></P>
<P>Before:<I>...</P></EM></H4>
<P>After:<I>..., value.word1, value.word2</P></EM></H4>
<P><H3>Description:</H3></P>
<P>The <I>index</I> operand, which serves as an 8-bit unsigned index into the local variables of the current frame, must specify the first of two consecutive local variable words that contain a <FONT FACE="Courier New">double</FONT>. To execute the <FONT FACE="Courier New">dload</FONT> instruction, the Java Virtual Machine pushes onto the operand stack the <FONT FACE="Courier New">double</FONT> contained in the two consecutive local variable words specified by <I>index</I> and <I>index + 1</I>.</P>
<P>Note that the <FONT FACE="Courier New">wide</FONT> instruction can precede the <FONT FACE="Courier New">lload</FONT> instruction, to allow a local variable to be accessed with a 16-bit unsigned offset.</P>
<P>For more information about the <FONT FACE="Courier New">dload</FONT> instruction, see Chapter 10, &quot;Stack Operations.&quot;</P>
<P><H3><FONT FACE="Courier New">dload_0</H3></FONT> - Load <FONT FACE="Courier New">double</FONT> from local variable 0</P>
<P><H3>Opcode:</H3> 38 (0x26)</P>
<P><H3>Instruction Format:</H3> <FONT FACE="Courier New">dload_0</FONT></P>
<P><H3>Stack:</H3></P>
<P>Before:<I>...</P></EM></H4>
<P>After:<I>..., value.word1, value.word2</P></EM></H4>
<P><H3>Description:</H3></P>
<P>The two consecutive local variable words at indexes zero and one must contain a <FONT FACE="Courier New">double</FONT>. To execute the <FONT FACE="Courier New">dload_0</FONT> instruction, the Java Virtual Machine pushes onto the operand stack the <FONT FACE="Courier New">double</FONT> <I>value</I> contained in local variable words zero and one.</P>
<P>For more information about the <FONT FACE="Courier New">dload_0</FONT> instruction, see Chapter 10, &quot;Stack Operations.&quot;</P>
<P><H3><FONT FACE="Courier New">dload_1</H3></FONT> - Load <FONT FACE="Courier New">double</FONT> from local variable 1</P>
<P><H3>Opcode:</H3> 39 (0x27)</P>
<P><H3>Instruction Format:</H3> <FONT FACE="Courier New">dload_1</FONT></P>
<P><H3>Stack:</H3></P>
<P>Before:<I>...</P></EM></H4>
<P>After:<I>..., value.word1, value.word2</P></EM></H4>
<P><H3>Description:</H3></P>
<P>The two consecutive local variable words at indexes one and two must contain a <FONT FACE="Courier New">double</FONT>. To execute the <FONT FACE="Courier New">dload_1</FONT> instruction, the Java Virtual Machine pushes onto the operand stack the <FONT FACE="Courier New">double</FONT> <I>value</I> contained in local variable words one and two.</P>
<P>For more information about the <FONT FACE="Courier New">dload_1</FONT> instruction, see Chapter 10, &quot;Stack Operations.&quot;</P>
<P><H3><FONT FACE="Courier New">dload_2</H3></FONT> - Load <FONT FACE="Courier New">double</FONT> from local variable 2</P>
<P><H3>Opcode:</H3> 40 (0x28)</P>
<P><H3>Instruction Format:</H3> <FONT FACE="Courier New">dload_2</FONT></P>
<P><H3>Stack:</H3></P>
<P>Before:<I>...</P></EM></H4>
<P>After:<I>..., value.word1, value.word2</P></EM></H4>
<P><H3>Description:</H3></P>
<P>The two consecutive local variable words at indexes two and three must contain a <FONT FACE="Courier New">double</FONT>. To execute the <FONT FACE="Courier New">dload_2</FONT> instruction, the Java Virtual Machine pushes onto the operand stack the <FONT FACE="Courier New">double</FONT> <I>value</I> contained in local variable words two and three.</P>
<P>For more information about the <FONT FACE="Courier New">dload_2</FONT> instruction, see Chapter 10, &quot;Stack Operations.&quot;</P>
<P><H3><FONT FACE="Courier New">dload_3</H3></FONT> - Load <FONT FACE="Courier New">double</FONT> from local variable 3</P>
<P><H3>Opcode:</H3> 41 (0x29)</P>
<P><H3>Instruction Format:</H3> <FONT FACE="Courier New">dload_3</FONT></P>
<P><H3>Stack:</H3></P>
<P>Before:<I>...</P></EM></H4>
<P>After:<I>..., value.word1, value.word2</P></EM></H4>
<P><H3>Description:</H3></P>
<P>The two consecutive local variable words at indexes three and four must contain a <FONT FACE="Courier New">double</FONT>. To execute the <FONT FACE="Courier New">dload_3</FONT> instruction, the Java Virtual Machine pushes onto the operand stack the <FONT FACE="Courier New">double</FONT> <I>value</I> contained in local variable words three and four.</P>
<P>For more information about the <FONT FACE="Courier New">dload_3</FONT> instruction, see Chapter 10, &quot;Stack Operations.&quot;</P>
<P><H3><FONT FACE="Courier New">dmul</H3></FONT> - Multiply <FONT FACE="Courier New">double</FONT>s</P>
<P><H3>Opcode:</H3> 107 (0x6b)</P>
<P><H3>Instruction Format:<

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -