Java Virtual Machine (Java Series)
aload
aload <varnum> or wide aload <varnum> In the first form, <varnum> is an unsigned integer in the range 0 to 0xFF. In the second (wide) form, <varnum> is an unsigned integer in the range 0 to 0xFFFF.
Stack
Before | After |
| ... | objectref |
| ... |
Retrieves an object reference from a local variable and pushes it onto the operand stack. The aload instruction takes a single parameter, <varnum>, an unsigned integer which indicates which local variable to retrieve. The object reference in that local variable is retrieved and placed on the stack. <varnum> must be a valid local variable number in the current frame.
Example
aload 1 ; push object reference in local variable 1 onto the stack Bytecode
To access to local variables in the range 0-255, use:
Type | Description |
| u1 | aload opcode = 0x19 (25) |
| u1 | <varnum> |
Type | Description |
| u1 | wide opcode = 0xC4 (196) |
| u1 | aload opcode = 0x19 (25) |
| u2 | <varnum> |
fload, iload, lload, dload, wide
Notes
If you use astore to store a returnAddress in a local variable, you cannot then use aload to retrieve the value of that local variable. Instead, if a local variable holds a returnAddress, your only choices are to (1) use ret to return to that address, or (2) use one of the store instructions to store some other value in the local variable.
prev next contents
Java Virtual Machine, by Jon Meyer and Troy Downing, O'Reilly Associates
Категории