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

📄 appa.htm

📁 JAVA Developing Professional JavaApplets
💻 HTM
📖 第 1 页 / 共 5 页
字号:
dload_3=41&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Stack: ... -&gt;..., word1, word2&nbsp;&nbsp;from vars[3] &amp; vars[4]</TT></BLOCKQUOTE><H5>Load Object from Local Variable</H5><BLOCKQUOTE><TT>aload=25 vindex&nbsp;&nbsp;Stack: ...-&gt; ..., object&nbsp;&nbsp;from vars[vindex]<BR>aload_0=42&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Stack: ... -&gt;..., object&nbsp;&nbsp;from vars[0]<BR>aload_1=43&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Stack: ... -&gt;..., object&nbsp;&nbsp;from vars[1]<BR>aload_2=44&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Stack: ... -&gt;..., object&nbsp;&nbsp;from vars[2]<BR>aload_3=45&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Stack: ... -&gt;..., object&nbsp;&nbsp;from vars[3]</TT></BLOCKQUOTE><H5>Store Integer into Local Variable</H5><BLOCKQUOTE><TT>istore=54 vindex Stack: ..., INT -&gt;...&nbsp;&nbsp;into vars[vindex]<BR>istore_0=59&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Stack: ..., INT-&gt; ...&nbsp;&nbsp;into vars[0]<BR>istore_1=60&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Stack: ..., INT-&gt; ...&nbsp;&nbsp;into vars[1]<BR>istore_2=61&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Stack: ..., INT-&gt; ...&nbsp;&nbsp;into vars[2]<BR>istore_3=62&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Stack: ..., INT-&gt; ...&nbsp;&nbsp;into vars[3]</TT></BLOCKQUOTE><H5>Store Long Integer into Local Variable</H5><BLOCKQUOTE><TT>lstore=55 vindex Stack: ..., word1, word2-&gt; ...&nbsp;&nbsp;into vars[vindex] &amp; vars[vindex+1]<BR>lstore_0=63&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Stack: ..., word1,word2 -&gt; ...&nbsp;&nbsp;into vars[0] &amp; vars[1]<BR>lstore_1=64&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Stack: ..., word1,word2 -&gt; ...&nbsp;&nbsp;into vars[1] &amp; vars[2]<BR>lstore_2=65&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Stack: ..., word1,word2 -&gt; ...&nbsp;&nbsp;into vars[2] &amp; vars[3]<BR>lstore_3=66&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Stack: ..., word1,word2 -&gt; ...&nbsp;&nbsp;into vars[3] &amp; vars[4]</TT></BLOCKQUOTE><H5>Store Float into Local Variable</H5><BLOCKQUOTE><TT>fstore=56 vindex Stack: ..., FLOAT -&gt;...&nbsp;&nbsp;into vars[vindex]<BR>fstore_0=67&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Stack: ..., FLOAT-&gt; ...&nbsp;&nbsp;into vars[0]<BR>fstore_1=68&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Stack: ..., FLOAT-&gt; ...&nbsp;&nbsp;into vars[1]<BR>fstore_2=69&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Stack: ..., FLOAT-&gt; ...&nbsp;&nbsp;into vars[2]<BR>fstore_3=70&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Stack: ..., FLOAT-&gt; ...&nbsp;&nbsp;into vars[3]</TT></BLOCKQUOTE><H5>Store Double into Local Variable</H5><BLOCKQUOTE><TT>dstore=57 vindex Stack: ..., word1, word2-&gt; ...&nbsp;&nbsp;into vars[vindex] &amp; vars[vindex+1]<BR>dstore_0=71&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Stack: ..., word1,word2 -&gt; ...&nbsp;&nbsp;into vars[0] &amp; vars[1]<BR>dstore_1=72&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Stack: ..., word1,word2 -&gt; ...&nbsp;&nbsp;into vars[1] &amp; vars[2]<BR>dstore_2=73&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Stack: ..., word1,word2 -&gt; ...&nbsp;&nbsp;into vars[2] &amp; vars[3]<BR>dstore_3=74&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Stack: ..., word1,word2 -&gt; ...&nbsp;&nbsp;into vars[3] &amp; vars[4]</TT></BLOCKQUOTE><H5>Store Object into Local Variable</H5><BLOCKQUOTE><TT>istore=58 vindex Stack: ..., OBJ -&gt;...&nbsp;&nbsp;into vars[vindex]<BR>istore_0=75&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Stack: ..., OBJ-&gt; ...&nbsp;&nbsp;into vars[0]<BR>istore_1=76&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Stack: ..., OBJ-&gt; ...&nbsp;&nbsp;into vars[1]<BR>istore_2=77&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Stack: ..., OBJ-&gt; ...&nbsp;&nbsp;into vars[2]<BR>istore_3=78&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Stack: ..., OBJ-&gt; ...&nbsp;&nbsp;into vars[3]</TT></BLOCKQUOTE><H5>Increment Local Variable </H5><P>This applies only to integers.<BLOCKQUOTE><TT>iinc=132 vindex constant&nbsp;&nbsp;&nbsp;Stack:... -&gt; ...&nbsp;&nbsp;vars[vindex] += constant</TT></BLOCKQUOTE><H4>Managing Arrays</H4><UL><LI>Arrays are treated as objects, but as you learned in <A HREF="Ch10.htm" >Chapter 10</A>,they don't use a method table pointer. Because of this uniqueness,arrays have special bytecodes to create and access them.</UL><H5>Allocate a New Array</H5><BLOCKQUOTE><TT>newarray=188 type Stack: ..., size -&gt;..., OBJ</TT></BLOCKQUOTE><H5>Allocate a New Array of Objects</H5><BLOCKQUOTE><TT>anewarray=189 classindex1 classindex2Stack: ..., size -&gt; ..., OBJ</TT></BLOCKQUOTE><H5>Allocate a New Multi-Dimensional Array</H5><BLOCKQUOTE><TT>newarray=197 indexbyte1 indexbyte1 indexbyte2&nbsp;&nbsp;Stack:..., size1, size2, etc -&gt; ..., OBJ</TT></BLOCKQUOTE><H5>Get the Array Length</H5><BLOCKQUOTE><TT>arraylength=190 Stack: ..., OBJ -&gt;..., length</TT></BLOCKQUOTE><H5>Load Primitives from the Array</H5><BLOCKQUOTE><TT>iaload=46 Stack: ..., OBJ, index -&gt;..., INT<BR>laload=47 Stack: ..., OBJ, index -&gt; ..., LONG1, LONG2<BR>faload=48 Stack: ..., OBJ, index -&gt; ..., FLOAT<BR>daload=49 Stack: ..., OBJ, index -&gt; ..., DOUBLE1, DOUBLE2<BR>aaload=50 Stack: ..., OBJ, index -&gt; ..., OBJ<BR>baload=51 Stack: ..., OBJ, index -&gt; ..., BYTE<BR>caload=52 Stack: ..., OBJ, index -&gt; ..., CHAR<BR>saload=53 Stack: ..., OBJ, index -&gt; ..., SHORT</TT></BLOCKQUOTE><H5>Store Primitives into the Array</H5><BLOCKQUOTE><TT>iastore-79 Stack: ..., OBJ, index, INT-&gt; ...<BR>lastore=80 Stack: ..., OBJ, index, LONG1, LONG2 -&gt; ...<BR>fastore=81 Stack: ..., OBJ, index, FLOAT -&gt; ...<BR>dastore=82 Stack: ..., OBJ, index, DOUBLE1, DOUBLE2 -&gt; ...<BR>aastore=83 Stack: ..., OBJ, index, OBJ -&gt; ...<BR>bastore=84 Stack: ..., OBJ, index, BYTE -&gt; ...<BR>castore=85 Stack: ..., OBJ, index, CHAR -&gt; ...<BR>sastore=86 Stack: ..., OBJ, index, SHORT -&gt; ...</TT></BLOCKQUOTE><H4>Generic Stack Instructions</H4><P>These are basic operations that alter the stack:<H5>Do Nothing</H5><BLOCKQUOTE><TT>nop=0&nbsp;&nbsp;&nbsp;Stack: ... -&gt;...</TT></BLOCKQUOTE><H5>Pop Stack Values</H5><BLOCKQUOTE><TT>pop=87&nbsp;&nbsp;Stack: ..., VAL -&gt;...<BR>pop2=88&nbsp;&nbsp;Stack: ..., VAL1, VAL2 -&gt; ...</TT></BLOCKQUOTE><H5>Duplicate Stack Values and Possibly Insert Below Stack Top</H5><BLOCKQUOTE><TT>dup=89&nbsp;&nbsp;&nbsp;&nbsp; Stack:..., V -&gt; ..., V, V<BR>dup2=92&nbsp;&nbsp;&nbsp;&nbsp;Stack: ..., V1, V2 -&gt; ..., V1,V2, V1, V2<BR>dup_x1=90&nbsp;&nbsp;Stack: ..., V1, V2 -&gt; ..., V2, V1, V2<BR>dup2_x1=93 Stack: ..., V1, V2, V3 -&gt; ..., V2, V3, V1, V2, V3<BR>dup_x2=91&nbsp;&nbsp;Stack: ..., V1, V2, V3 -&gt; ..., V3, V1,V2, V3<BR>dup2_x2=94 Stack: ..., V1, V2, V3, V4 -&gt; ..., V3, V4, V1, V2,V3, V4</TT></BLOCKQUOTE><H5>Swap Two-Stack Items</H5><BLOCKQUOTE><TT>swap=95&nbsp;&nbsp;&nbsp;&nbsp;Stack:..., V1, V2 -&gt; ..., V2, V1</TT></BLOCKQUOTE><H4>Arithmetic and Logical Instructions</H4><P>All the arithmetic operations operate on four possible types:integer, long, float, or double. Logical instructions operateonly on integer and long types.<H5>Addition</H5><BLOCKQUOTE><TT>iadd=96&nbsp;&nbsp;Stack: ..., INT1,INT2 -&gt; ..., INT1+INT2<BR>ladd=97&nbsp;&nbsp;Stack: ..., L1_1, L1_2, L2_1, L2_2 -&gt; ...,L1+L2 (high), L1+L2 (low)<BR>fadd=98&nbsp;&nbsp;Stack: ..., FLOAT1, FLOAT2 -&gt; ..., FLOAT1+FLOAT2<BR>dadd=99&nbsp;&nbsp;Stack: ..., D1_1, D1_2, D2_1, D2_2 -&gt; ...,D1+D2 (high), D1+D2 (low)</TT></BLOCKQUOTE><H5>Subtraction</H5><BLOCKQUOTE><TT>isub=100 Stack: ..., INT1, INT2 -&gt;..., INT1-INT2<BR>lsub=101 Stack: ..., L1_1, L1_2, L2_1, L2_2 -&gt; ..., L1-L2 (high),L1-L2 (low)<BR>fsub=102 Stack: ..., FLOAT1, FLOAT2 -&gt; ..., FLOAT1-FLOAT2<BR>dsub=103 Stack: ..., D1_1, D1_2, D2_1, D2_2 -&gt; ..., D1-D2 (high),D1-D2 (low)</TT></BLOCKQUOTE><H5>Multiplication</H5><BLOCKQUOTE><TT>imul=104&nbsp;&nbsp;Stack: ..., INT1,INT2 -&gt; ..., INT1*INT2<BR>lmul=105&nbsp;&nbsp;Stack: ..., L1_1, L1_2, L2_1, L2_2 -&gt; ...,L1*L2 (high), L1*L2 (low)<BR>fmul=106&nbsp;&nbsp;Stack: ..., FLOAT1, FLOAT2 -&gt; ..., FLOAT1*FLOAT2<BR>dmul=107&nbsp;&nbsp;Stack: ..., D1_1, D1_2, D2_1, D2_2 -&gt; ...,D1*D2 (high), D1*D2 (low)</TT></BLOCKQUOTE><H5>Division</H5><BLOCKQUOTE><TT>idiv=108&nbsp;&nbsp;Stack: ..., INT1,INT2 -&gt; ..., INT1/INT2<BR>ldiv=109&nbsp;&nbsp;Stack: ..., L1_1, L1_2, L2_1, L2_2 -&gt; ...,L1/L2 (high), L1/L2 (low)<BR>fdiv=110&nbsp;&nbsp;Stack: ..., FLOAT1, FLOAT2 -&gt; ..., FLOAT1/FLOAT2<BR>ddiv=111&nbsp;&nbsp;Stack: ..., D1_1, D1_2, D2_1, D2_2 -&gt; ...,D1/D2 (high), D1/D2 (low)</TT></BLOCKQUOTE><H5>Remainder</H5><BLOCKQUOTE><TT>irem=112&nbsp;&nbsp;Stack: ..., INT1,INT2 -&gt; ..., INT1%INT2<BR>lrem=113&nbsp;&nbsp;Stack: ..., L1_1, L1_2, L2_1, L2_2 -&gt; ...,L1%L2 (high), L1%L2 (low)<BR>frem=114&nbsp;&nbsp;Stack: ..., FLOAT1, FLOAT2 -&gt; ..., FLOAT1%FLOAT2<BR>drem=115&nbsp;&nbsp;Stack: ..., D1_1, D1_2, D2_1, D2_2 -&gt; ...,D1%D2 (high), D1%D2 (low)</TT></BLOCKQUOTE><H5>Negation</H5><BLOCKQUOTE><TT>ineg=116&nbsp;&nbsp;Stack: ..., INT -&gt;..., -INT<BR>lneg=117&nbsp;&nbsp;Stack: ..., LONG1, LONG2 -&gt; ..., -LONG1,-LONG2<BR>fneg=118&nbsp;&nbsp;Stack: ..., FLOAT -&gt; ..., -FLOAT<BR>dneg=119&nbsp;&nbsp;Stack: ..., DOUBLE1, DOUBLE2 -&gt; ..., -DOUBLE1,-DOUBLE2</TT></BLOCKQUOTE><H5>Integer Logical Instructions </H5><P><TT>&gt;&gt;&gt;</TT> denotes an unsignedright shift.<BLOCKQUOTE><TT>ishl=120&nbsp;&nbsp;Stack: ..., INT1,INT2 -&gt; INT1&lt;&lt;(INT2 &amp; 0x1f)<BR>ishr=122&nbsp;&nbsp;Stack: ..., INT1, INT2 -&gt; INT1&gt;&gt;(INT2&amp; 0x1f)<BR>iushr=124 Stack: ..., INT1, INT2 -&gt; INT1&gt;&gt;&gt;(INT2 &amp;0x1f)</TT></BLOCKQUOTE><H5>Long Integer Logical Instructions</H5><P><TT>&gt;&gt;&gt;</TT> denotes an unsignedright shift.<BLOCKQUOTE><TT>lshl=121&nbsp;&nbsp;Stack: ..., L1, L2,INT -&gt; L1&lt;&lt;(INT &amp; 0x3f), L2&lt;&lt;(INT &amp; 0x3f)<BR>lshr=123&nbsp;&nbsp;Stack: ..., L1, L2, INT -&gt; INT1&gt;&gt;(INT&amp; 0x3f), L2&gt;&gt;(INT &amp; 0x03)<BR>lushr=125 Stack: ..., L1, L2, INT -&gt; INT1&gt;&gt;&gt;(INT &amp;0x3f), L2&gt;&gt;&gt;(INT &amp; 0x3f)</TT></BLOCKQUOTE><H5>Integer Boolean Operations</H5><BLOCKQUOTE><TT>iand=126&nbsp;&nbsp;Stack: ..., INT1,INT2 -&gt; ..., INT1&amp;INT2<BR>ior=128&nbsp;&nbsp;&nbsp;Stack: ..., INT1, INT2 -&gt; ..., INT1|INT2<BR>ixor=130&nbsp;&nbsp;Stack: ..., INT1, INT2 -&gt; ..., INT1^INT2</TT></BLOCKQUOTE><H5>Long Integer Boolean Operations</H5><BLOCKQUOTE><TT>land=127&nbsp;&nbsp;Stack: ..., L1_1,L1_2, L2_1, L2_2 -&gt; ..., L1_1&amp;L2_1, L1_2&amp;L2_2<BR>lor=129&nbsp;&nbsp;&nbsp;Stack: ..., L1_1, L1_2, L2_1, L2_2 -&gt;..., L1_1|L2_1, L1_2|L2_2<BR>lxor=131&nbsp;&nbsp;Stack: ..., L1_1, L1_2, L2_1, L2_2 -&gt; ...,L1_1^L2_1. L1_2^L2_2</TT></BLOCKQUOTE><H4>Conversion Instructions</H4><P>Because most of the previous bytecodes expect the stack to containa homogenous set of operands, Java uses conversion functions.In code, you can add a float and an integer, but Java will firstconvert the integer to a float type before performing the addition.<H5>Integer Conversions</H5><BLOCKQUOTE><TT>i2l=133&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Stack: .., INT -&gt; ..., LONG1, LONG2<BR>i2f=134&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Stack: .., INT -&gt;..., FLOAT<BR>i2d=135&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Stack: .., INT -&gt;..., DOUBLE1, DOUBLE2<BR>int2byte=145&nbsp;&nbsp;Stack: .., INT -&gt; ..., BYTE<BR>int2char=146&nbsp;&nbsp;Stack: .., INT -&gt; ..., CHAR<BR>int2short=147 Stack: .., INT -&gt; ..., SHORT</TT></BLOCKQUOTE><H5>Long Integer Conversions</H5><BLOCKQUOTE><TT>l2i=136&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Stack: .., LONG1, LONG2 -&gt; ..., INT<BR>l2f=137&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Stack: .., LONG1,LONG2 -&gt; ..., FLOAT<BR>l2d=138&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Stack: .., LONG1,LONG2 -&gt; ..., DOUBLE1, DOUBLE2</TT></BLOCKQUOTE><H5>Float Conversions</H5><BLOCKQUOTE><TT>f2i=139&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Stack: .., FLOAT -&gt; ..., INT<BR>f2l=140&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Stack: .., FLOAT -&gt;..., LONG1, LONG2<BR>f2d=141&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Stack: .., FLOAT -&gt;..., DOUBLE1, DOUBLE2</TT></BLOCKQUOTE><H5>Double Conversions</H5><BLOCKQUOTE><TT>d2i=142&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Stack: .., DOUBLE1, DOUBLE2 -&gt; ..., INT<BR>d2l=143&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Stack: .., DOUBLE1,DOUBLE2 -&gt; ..., LONG1, LONG2<BR>d2f=144&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Stack: .., DOUBLE1,DOUBLE2 -&gt; ..., FLOAT</TT></BLOCKQUOTE><H4>Control Transfer and Function Return</H4><P>All branch indexes are signed 16-bit offsets from the current<TT>pc</TT> register.<H5>Comparisons with Zero</H5><BLOCKQUOTE><TT>ifeq=153 branch1 branch2&nbsp;&nbsp;&nbsp;Stack:..., INT -&gt; ...<BR>ifne=154 branch1 branch2&nbsp;&nbsp;&nbsp;Stack: ..., INT -&gt;...<BR>iflt=155 branch1 branch2&nbsp;&nbsp;&nbsp;Stack: ..., INT -&gt;...<BR>ifge=156 branch1 branch2&nbsp;&nbsp;&nbsp;Stack: ..., INT -&gt;...<BR>ifgt=157 branch1 branch2&nbsp;&nbsp;&nbsp;Stack: ..., INT -&gt;...<BR>

⌨️ 快捷键说明

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