Opcode
操作码(hex)
Opcode name
操作码名称
Explanation
说明
Example
示例
0F
return vx
返回在vx寄存器的值。
0F00 - return v0
返回v0寄存器中的值。
10
return-wide vx
返回在vx,vx+1寄存器的double/long值。
1000 - return-wide v0
返回v0,v1寄存器中的double/long值。
11
return-object vx
返回在vx寄存器的对象引用。
1100 - return-object v0
返回v0寄存器中的对象引用。
12
const/4 vx, lit4
存入4位常量到vx。
1221 - const/4 v1, #int 2
存入int型常量2到v1。目的寄存器在第二个字节的低4位,常量2在更高的4位。
13
const/16 vx, lit16
存入16位常量到vx。
1300 0A00 - const/16 v0, #int 10
存入int型常量10到v0。
14
const vx, lit32
存入int 型常量到vx。
1400 4E61 BC00 - const v0, #12345678 // #00BC614E
存入常量12345678到v0。
15
const/high16 v0, lit16
存入16位常量到最高位寄存器,用于初始化float值。
1500 2041 - const/high16 v0, #float 10.0 // #41200000
存入float常量10.0到v0。该指令最高支持16位浮点数。
16
const-wide/16 vx, lit16
存入int常量到vx,vx+1寄存器,扩展int型常量为long常量。
1600 0A00 - const-wide/16 v0, #long 10
存入long常量10到v0,v1寄存器。
17
const-wide/32 vx, lit32
存入32位常量到vx,vx+1寄存器,扩展int型常量到long常量。
1702 4e61 bc00 - const-wide/32 v2, #long 12345678 // #00bc614e
存入long常量12345678到v2,v3寄存器。
18
const-wide vx, lit64
存入64位常量到vx,vx+1寄存器。
1802 874b 6b5d 54dc 2b00- const-wide v2, #long 12345678901234567 // #002bdc545d6b4b87
存入long常量12345678901234567到v2,v3寄存器。
19
const-wide/high16 vx, lit16
存入16位常量到最高16位的vx,vx+1寄存器,用于初始化double 值。
1900 2440 - const-wide/high16 v0, #double 10.0 // #402400000
存入double常量10.0到v0,v1。
1A
const-string vx, 字符串ID
存入字符串常量引用到vx,通过字符串ID或字符串。
1A08 0000 - const-string v8, "" // string@0000
存入string@0000(字符串表#0条目)的引用到v8。
1B
const-string-jumbo
未知注4
1C
const-class vx, 类型ID
存入类对象常量到vx,通过类型ID或类型(如Object.class)。
1C00 0100 - const-class v0, Test3 // type@0001
存入Test3.class(类型ID表#1条目)的引用到v0。
1D
monitor-enter vx
获得vx寄存器中的对象引用的监视器。
1D03 - monitor-enter v3
获得v3寄存器中的对象引用的监视器。