Dalvik虚拟机字节码与指令集对照表

Dalvik虚拟机指令集与字节码格式对照表,根据此表可以快速查阅字节码与指令集对应关系。

转载请注明出处:http://www.zhangchuany.com/dalvik/dalvik-bytecode-instructionset-comparedtab/

字节码ID 指令格式ID 助记符/语法 说明 指令格式ID 指令格式 指令格式语法
00 10x nop 10x ØØ|op op
01 12x move vA,vB 将vB寄存器中的值赋予vA寄存器,vA和vB寄存器都是16位 12x B|A|op op vA, vB
02 22x move/from16 vAA,vBBBB 将vBBBB寄存器中的值赋予vAA寄存器,源寄存器vBBBB为16位目标寄存器vAA为8位 22x AA|op BBBB op vAA, vBBBB
03 32x move/16 vAAAA,vBBBB 将vBBBB寄存器中的值赋予vAAAA,源寄存器和目标寄存器都是16位 32x ØØ|op AAAA BBBB op vAAAA, vBBBB
04 12x move-wide vA,vB 将vB寄存器中的值赋予vA,源寄存器和目标寄存器都是四位 12x B|A|op op vA, vB
05 22x move-wide/from16 vAA,vBBBB 将vBBBB寄存器中的值赋予vAA寄存器,源寄存器vBBBB为16位目标寄存器vAA为8位 22x AA|op BBBB op vAA, vBBBB
06 32x move-wide/16 vAAAA,vBBBB 将vBBBB寄存器中的值赋予vAAAA,源寄存器和目标寄存器都是16位 32x ØØ|op AAAA BBBB op vAAAA, vBBBB
07 12x move-object vA,vB 将vB寄存器中的对象赋予vA寄存器,源寄存器与目标寄存器都是四位 12x B|A|op op vA, vB
08 22x move-object/from16 vAA, vBBBB 将vBBBB寄存器中的对象赋予vAA寄存器,源寄存器是16位,目标寄存器是8位 22x AA|op BBBB op vAA, vBBBB
09 32x move-object/16 vAAAA,vBBBB 将vBBBB寄存器中的值赋予vAAAA,源寄存器和目标寄存器都是16位 32x ØØ|op AAAA BBBB op vAAAA, vBBBB
0a 11x move-result vAA 将最新的invoke类型指令操作的单字非对象结果移到指定的寄存器中 11x AA|op op vAA
0b 11x move-result-wide vAA 将最新的invoke类型指令操作的双字节非对象结果移到指定的寄存器中 11x AA|op op vAA
0c 11x move-result-object vAA 将最新的invoke类型指令操作的对象结果移到指定的寄存器中 11x AA|op op vAA
0d 11x move-exception vAA 将刚刚捕获的异常保存到给定寄存器中。 11x AA|op op vAA
0e 10x return-void 函数以void形式返回 10x ØØ|op op
0f 11x return vAA 返回一个32位非对象类型的值,返回值为8位寄存器 11x AA|op op vAA
10 11x return-wide vAA 返回一个64位非对象类型的值,返回值为8位寄存器 11x AA|op op vAA
11 11x return-object vAA 返回一个对象类型的值,返回值为8位寄存器 11x AA|op op vAA
12 11n const/4 vA, #+B 将数值符号扩展为32位后赋予寄存器vA 11n B|A|op op vA, #+B
13 21s const/16 vAA, #+BBBB 将数值符号扩展为32位后赋予寄存器vAA 21s AA|op BBBB op vAA, #+BBBB
14 31i const vAA, #+BBBBBBBB 将数值赋予寄存器vAA 31i AA|op BBBBlo BBBBhi op vAA, #+BBBBBBBB
15 21h const/high16 vAA, #+BBBB0000 将数值右边的0扩展为32位后赋予寄存器vAA 21h AA|op BBBB [op vAA, #+BBBB0000,op vAA, #+BBBB000000000000]
16 21s const-wide/16 vAA, #+BBBB 将数值符号扩展为64位后赋予寄存器vAA 21s AA|op BBBB op vAA, #+BBBB
17 31i const-wide/32 vAA, #+BBBBBBBB 将数值符号扩展为64位后赋予寄存器vAA 31i AA|op BBBBlo BBBBhi op vAA, #+BBBBBBBB
18 51l const-wide vAA, #+BBBBBBBBBBBBBBBB 将数值赋予寄存器vAA 51l AA|op BBBBlo BBBB BBBB BBBBhi op vAA, #+BBBBBBBBBBBBBBBB
19 21h const-wide/high16 vAA, #+BBBB000000000000 将数值右边的0扩展为64位后赋予寄存器vAA 21h AA|op BBBB [op vAA, #+BBBB0000,op vAA, #+BBBB000000000000]
1a 21c const-string vAA, string@BBBB 通过给定的字符串所有构造字符串并将其赋予寄存器中。 21c AA|op BBBB [op vAA, type@BBBB,op vAA, field@BBBB,op vAA, method_handle@BBBB,op vAA, proto@BBBB,op vAA, string@BBBB]
1b 31c const-string/jumbo vAA, string@BBBBBBBB 通过给定的字符串所有构造字符串并将其赋予寄存器中。 31c AA|op BBBBlo BBBBhi op vAA, string@BBBBBBBB
1c 21c const-class vAA, type@BBBB 通过给定的索引获取的类引用移到指定的寄存器中。如果指定的类型是原始类型,则将存储对原始类型的退化类的引用。 21c AA|op BBBB [op vAA, type@BBBB,op vAA, field@BBBB,op vAA, method_handle@BBBB,op vAA, proto@BBBB,op vAA, string@BBBB]
1d 11x monitor-enter vAA 获取指定对象的监视锁。 11x AA|op op vAA
1e 11x monitor-exit vAA 释放指定对象的监视锁。 11x AA|op op vAA
1f 21c check-cast vAA, type@BBBB 将vAA寄存器中的对象转换成指定的类型,如果给定寄存器中的引用不能转型为指定的类型,则抛出 ClassCastException。 21c AA|op BBBB [op vAA, type@BBBB,op vAA, field@BBBB,op vAA, method_handle@BBBB,op vAA, proto@BBBB,op vAA, string@BBBB]
20 22c instance-of vA,vB,type@CCCC 用于判断vB寄存器中的对象引用是否可以转换成指定的类型,如果可以就为vA寄存器赋值1,否则为vA寄存器中赋值0 22c B|A|op CCCC [op vA, vB, type@CCCC,op vA, vB, field@CCCC]
21 12x array-length vA,vB 将指定数组的长度赋值给给定目标寄存器 12x B|A|op op vA, vB
22 21c new-instance vAA,type@BBBB 根据指定的类型构造新实例,并将对象引用赋值到目标寄存器vAA中。该类型不能使数组类 21c AA|op BBBB [op vAA, type@BBBB,op vAA, field@BBBB,op vAA, method_handle@BBBB,op vAA, proto@BBBB,op vAA, string@BBBB]
23 22c new-array vA,vB,type@CCCC 根据指定的类型(type@CCCC)和大小(vB)构造新数组。该类型必须是数组类型。 22c B|A|op CCCC [op vA, vB, type@CCCC,op vA, vB, field@CCCC]
24 35c filled-new-array {vC,vD,vE,vF,vG},type@BBBB 构造指定类型(type@BBBB)和大小(vA)的数组并填充数组内容,该类型必须是数组类型。数组的内容必须是单字类型(即不接受 long 或 double 类型的数组,但接受引用类型的数组)。vA寄存器是隐含使用的,除了指定数组的大小还指定了参数的个数。vC-vG是所使用的参数寄存器序列 35c A|G|op BBBB F|E|D|C [[A=5] op {vC, vD, vE, vF, vG}, meth@BBBB,[A=5] op {vC, vD, vE, vF, vG}, site@BBBB,[A=5] op {vC, vD, vE, vF, vG}, type@BBBB,[A=4] op {vC, vD, vE, vF}, kind@BBBB,[A=3] op {vC, vD, vE}, kind@BBBB,[A=2] op {vC, vD}, kind@BBBB,[A=1] op {vC}, kind@BBBB,[A=0] op {}, kind@BBBB]
25 3rc filled-new-array/range {vCCCC .. vNNNN},type@BBBB 根据给定类型和大小构造数组,并使用提供的内容填充该数组。相关的说明和限制与上文所述 filled-new-array 的相同,只是参数寄存器使用range字节码后缀来指定取值范围。vC是第一个寄存器参数下一个寄存器命名方式为 vN=vA+vC-1 3rc AA|op BBBB CCCC [op {vCCCC .. vNNNN}, meth@BBBB,op {vCCCC .. vNNNN}, site@BBBB,op {vCCCC .. vNNNN}, type@BBBB]
26 31t fill-array-data vAA,+BBBBBBBB 使用指定的数据填充数组,vAA寄存器为数组引用(引用必须是基础类型的数组),在指令后会紧跟一个数据表 31t AA|op BBBBlo BBBBhi op vAA, +BBBBBBBB
27 11x throw vAA 抛出vAA寄存器中指定类型的异常。 11x AA|op op vAA
28 10t goto +AA 无条件跳转到指定偏移出,偏移量AA(8位)不能为0 10t AA|op op +AA
29 20t goto/16 +AAAA 无条件跳转到指定偏移出,偏移量AAAA(16位)不能为0 20t ØØ|op AAAA op +AAAA
2a 30t goto/32 +AAAAAAAA 无条件跳转到指定便宜出,A(32位) 30t ØØ|op AAAAlo AAAAhi op +AAAAAAAA
2b 31t packed-switch vAA, +BBBBBBBB 分支跳转指令,vAA寄存器位switch分支中需要判断的值,BBBBBBBB指向一个sparse-switch-payload格式的偏移表,表中的值是无规律的偏移量 31t AA|op BBBBlo BBBBhi op vAA, +BBBBBBBB
2c 31t sparse-switch vAA, +BBBBBBBB 分支跳转指令,vAA寄存器位switch分支中需要判断的值,BBBBBBBB指向一个sparse-switch-payload格式的偏移表,表中的值是无规律的偏移量 31t AA|op BBBBlo BBBBhi op vAA, +BBBBBBBB
2d 23x cmpl-float vAA, vBB, vCC 比较两个单精度浮点数,如果vBB寄存器的值大于vCC寄存器的值,则结果为-1。如果等于则结果为0,否则如果小于则结果为1,vAA寄存器存放比较结果。 23x AA|op CC|BB op vAA, vBB, vCC
2e 23x cmpg-float vAA, vBB, vCC 比较两个单精度浮点数,如果vBB寄存器的值大于vCC寄存器的值,则结果为1。如果等于则结果为0,否则如果小于则结果为-1,vAA寄存器存放比较结果。 23x AA|op CC|BB op vAA, vBB, vCC
2f 23x cmpl-double vAA, vBB, vCC 比较两个双精度浮点数,如果vBB寄存器的值大于vCC寄存器的值,则结果为-1。如果等于则结果为0,否则如果小于则结果为1,vAA寄存器存放比较结果。 23x AA|op CC|BB AA|op CC|BB
30 23x cmpg-double vAA, vBB, vCC 比较两个双精度浮点数,如果vBB寄存器的值大于vCC寄存器的值,则结果为1。如果等于则结果为0,否则如果小于则结果为-1,vAA寄存器存放比较结果。 23x AA|op CC|BB AA|op CC|BB
31 23x cmp-long vAA, vBB, vCC 比较两个长整数,如果vBB寄存器的值大于vCC寄存器的值,则结果为1。如果等于则结果为0,否则如果小于则结果为-1,vAA寄存器存放比较结果。 23x AA|op CC|BB AA|op CC|BB
32 22t if-eq vA, vB, +CCCC 如果vA等于vB则跳转,其Java语法为“if(vA==vB)” 22t B|A|op CCCC op vA, vB, +CCCC
33 22t if-ne vA, vB, +CCCC 如果vA不等于vB则跳转,其Java语法为“if(vA!=vB)” 22t B|A|op CCCC op vA, vB, +CCCC
34 22t if-lt vA, vB, +CCCC 如果vA小于vB则跳转,其Java语法为”if(vA<vB)” 22t B|A|op CCCC op vA, vB, +CCCC
35 22t if-ge vA, vB, +CCCC 如果vA大于等于vB则跳转,其Java语法为”if(vA>=vB)” 22t B|A|op CCCC op vA, vB, +CCCC
36 22t if-gt vA, vB, +CCCC 如果vA大于vB则跳转,其Java语法为“if(vA>=vB)” 22t B|A|op CCCC op vA, vB, +CCCC
37 22t if-le vA, vB, +CCCC 如果vA小于等于vB则跳转,其Java语法为”if(vA<=vB)” 22t B|A|op CCCC op vA, vB, +CCCC
38 21t if-eqz vAA, +BBBB 如果vAA为0则跳转,其Java语法为”if(!vAA) 21t AA|op BBBB op vAA, +BBBB
39 21t if-nez vAA, +BBBB 如果vAA不为0则跳转,其Java语法为”if(vAA)” 21t AA|op BBBB op vAA, +BBBB
3a 21t if-ltz vAA, +BBBB 如果vAA小于0则跳转,其Java语法为“if(vAA<0)” 21t AA|op BBBB op vAA, +BBBB
3b 21t if-gez vAA, +BBBB 如果vAA大于等于0则跳转,其Java语法为“if(vAA>=0)” 21t AA|op BBBB op vAA, +BBBB
3c 21t if-gtz vAA, +BBBB 如果vAA大于0则跳转,其Java语法为”if(vAA>0)” 21t AA|op BBBB op vAA, +BBBB
3d 21t if-lez vAA, +BBBB 如果vAA小于等于0则跳转,其Java语法为”if(vAA<=)” 21t AA|op BBBB op vAA, +BBBB
44 23x aget vAA, vBB, vCC 对vBB寄存器指定的数组元素进行取值与赋值,vCC寄存器用于指定数组元素的索引。vAA寄存器用于存放读取到的值 23x AA|op CC|BB op vAA, vBB, vCC
45 23x aget-wide vAA, vBB, vCC 对vBB寄存器指定的数组元素进行取值与赋值,vCC寄存器用于指定数组元素的索引。vAA寄存器用于存放读取到的值 23x AA|op CC|BB op vAA, vBB, vCC
46 23x aget-object vAA, vBB, vCC 对vBB寄存器指定的数组元素进行取值与赋值,vCC寄存器用于指定数组元素的索引。vAA寄存器用于存放读取到的值 23x AA|op CC|BB op vAA, vBB, vCC
47 23x aget-boolean vAA, vBB, vCC 对vBB寄存器指定的数组元素进行取值与赋值,vCC寄存器用于指定数组元素的索引。vAA寄存器用于存放读取到的值 23x AA|op CC|BB op vAA, vBB, vCC
48 23x aget-byte vAA, vBB, vCC 对vBB寄存器指定的数组元素进行取值与赋值,vCC寄存器用于指定数组元素的索引。vAA寄存器用于存放读取到的值 23x AA|op CC|BB op vAA, vBB, vCC
49 23x aget-char vAA, vBB, vCC 对vBB寄存器指定的数组元素进行取值与赋值,vCC寄存器用于指定数组元素的索引。vAA寄存器用于存放读取到的值 23x AA|op CC|BB op vAA, vBB, vCC
4a 23x aget-short vAA, vBB, vCC 对vBB寄存器指定的数组元素进行取值与赋值,vCC寄存器用于指定数组元素的索引。vAA寄存器用于存放读取到的值 23x AA|op CC|BB op vAA, vBB, vCC
4b 23x aput vAA, vBB, vCC 对vBB寄存器指定的数组元素进行取值与赋值,vCC寄存器用于指定数组元素的索引。vAA寄存器用于存放需要设置的值 23x AA|op CC|BB op vAA, vBB, vCC
4c 23x aput-wide vAA, vBB, vCC 对vBB寄存器指定的数组元素进行取值与赋值,vCC寄存器用于指定数组元素的索引。vAA寄存器用于存放需要设置的值 23x AA|op CC|BB op vAA, vBB, vCC
4d 23x aput-object vAA, vBB, vCC 对vBB寄存器指定的数组元素进行取值与赋值,vCC寄存器用于指定数组元素的索引。vAA寄存器用于存放需要设置的值 23x AA|op CC|BB op vAA, vBB, vCC
4e 23x aput-boolean vAA, vBB, vCC 对vBB寄存器指定的数组元素进行取值与赋值,vCC寄存器用于指定数组元素的索引。vAA寄存器用于存放需要设置的值 23x AA|op CC|BB op vAA, vBB, vCC
4f 23x aput-byte vAA, vBB, vCC 对vBB寄存器指定的数组元素进行取值与赋值,vCC寄存器用于指定数组元素的索引。vAA寄存器用于存放需要设置的值 23x AA|op CC|BB op vAA, vBB, vCC
50 23x aput-char vAA, vBB, vCC 对vBB寄存器指定的数组元素进行取值与赋值,vCC寄存器用于指定数组元素的索引。vAA寄存器用于存放需要设置的值 23x AA|op CC|BB op vAA, vBB, vCC
51 23x aput-short vAA, vBB, vCC 对vBB寄存器指定的数组元素进行取值与赋值,vCC寄存器用于指定数组元素的索引。vAA寄存器用于存放需要设置的值 23x AA|op CC|BB op vAA, vBB, vCC
52 22c iget vA, vB, field@CCCC 字段操作指令用于对对象实例的字段进行读操作,根据访问的字段类型的不同,字段操作指令后面会紧跟字段类型的后缀。例如,iget-short指令读取实例字段的值的类型为短整型 22c B|A|op CCCC [op vA, vB, type@CCCC,op vA, vB, field@CCCC]
53 22c iget-wide vA, vB, field@CCCC 字段操作指令用于对对象实例的字段进行读操作,根据访问的字段类型的不同,字段操作指令后面会紧跟字段类型的后缀。例如,iget-short指令读取实例字段的值的类型为短整型 22c B|A|op CCCC [op vA, vB, type@CCCC,op vA, vB, field@CCCC]
54 22c iget-object vA, vB, field@CCCC 字段操作指令用于对对象实例的字段进行读操作,根据访问的字段类型的不同,字段操作指令后面会紧跟字段类型的后缀。例如,iget-short指令读取实例字段的值的类型为短整型 22c B|A|op CCCC [op vA, vB, type@CCCC,op vA, vB, field@CCCC]
55 22c iget-boolean vA, vB, field@CCCC 字段操作指令用于对对象实例的字段进行读操作,根据访问的字段类型的不同,字段操作指令后面会紧跟字段类型的后缀。例如,iget-short指令读取实例字段的值的类型为短整型 22c B|A|op CCCC [op vA, vB, type@CCCC,op vA, vB, field@CCCC]
56 22c iget-byte vA, vB, field@CCCC 字段操作指令用于对对象实例的字段进行读操作,根据访问的字段类型的不同,字段操作指令后面会紧跟字段类型的后缀。例如,iget-short指令读取实例字段的值的类型为短整型 22c B|A|op CCCC [op vA, vB, type@CCCC,op vA, vB, field@CCCC]
57 22c iget-char vA, vB, field@CCCC 字段操作指令用于对对象实例的字段进行读操作,根据访问的字段类型的不同,字段操作指令后面会紧跟字段类型的后缀。例如,iget-short指令读取实例字段的值的类型为短整型 22c B|A|op CCCC [op vA, vB, type@CCCC,op vA, vB, field@CCCC]
58 22c iget-short vA, vB, field@CCCC 字段操作指令用于对对象实例的字段进行读操作,根据访问的字段类型的不同,字段操作指令后面会紧跟字段类型的后缀。例如,iget-short指令读取实例字段的值的类型为短整型 22c B|A|op CCCC [op vA, vB, type@CCCC,op vA, vB, field@CCCC]
59 22c iput vA, vB, field@CCCC 字段操作指令用于对对象实例的字段进行写操作,根据访问的字段类型的不同,字段操作指令后面会紧跟字段类型的后缀。例如,iput-short指令用于设置实例字段的值的类型为短整型 22c B|A|op CCCC [op vA, vB, type@CCCC,op vA, vB, field@CCCC]
5a 22c iput-wide vA, vB, field@CCCC 字段操作指令用于对对象实例的字段进行写操作,根据访问的字段类型的不同,字段操作指令后面会紧跟字段类型的后缀。例如,iput-short指令用于设置实例字段的值的类型为短整型 22c B|A|op CCCC [op vA, vB, type@CCCC,op vA, vB, field@CCCC]
5b 22c iput-object vA, vB, field@CCCC 字段操作指令用于对对象实例的字段进行写操作,根据访问的字段类型的不同,字段操作指令后面会紧跟字段类型的后缀。例如,iput-short指令用于设置实例字段的值的类型为短整型 22c B|A|op CCCC [op vA, vB, type@CCCC,op vA, vB, field@CCCC]
5c 22c iput-boolean vA, vB, field@CCCC 字段操作指令用于对对象实例的字段进行写操作,根据访问的字段类型的不同,字段操作指令后面会紧跟字段类型的后缀。例如,iput-short指令用于设置实例字段的值的类型为短整型 22c B|A|op CCCC [op vA, vB, type@CCCC,op vA, vB, field@CCCC]
5d 22c iput-byte vA, vB, field@CCCC 字段操作指令用于对对象实例的字段进行写操作,根据访问的字段类型的不同,字段操作指令后面会紧跟字段类型的后缀。例如,iput-short指令用于设置实例字段的值的类型为短整型 22c B|A|op CCCC [op vA, vB, type@CCCC,op vA, vB, field@CCCC]
5e 22c iput-char vA, vB, field@CCCC 字段操作指令用于对对象实例的字段进行写操作,根据访问的字段类型的不同,字段操作指令后面会紧跟字段类型的后缀。例如,iput-short指令用于设置实例字段的值的类型为短整型 22c B|A|op CCCC [op vA, vB, type@CCCC,op vA, vB, field@CCCC]
5f 22c iput-short vA, vB, field@CCCC 字段操作指令用于对对象实例的字段进行写操作,根据访问的字段类型的不同,字段操作指令后面会紧跟字段类型的后缀。例如,iput-short指令用于设置实例字段的值的类型为短整型 22c B|A|op CCCC [op vA, vB, type@CCCC,op vA, vB, field@CCCC]
60 21c sget vAA, field@BBBB 字段操作指令用于对对象的静态字段进行读操作,根据访问的字段类型的不同,字段操作指令后面会紧跟字段类型的后缀。例如,sget-byte指令用于读取字段的值的类型为字节码类型 21c AA|op BBBB [op vAA, type@BBBB,op vAA, field@BBBB,op vAA, method_handle@BBBB,op vAA, proto@BBBB,op vAA, string@BBBB]
61 21c sget-wide vAA, field@BBBB 字段操作指令用于对对象的静态字段进行读操作,根据访问的字段类型的不同,字段操作指令后面会紧跟字段类型的后缀。例如,sget-byte指令用于读取字段的值的类型为字节码类型 21c AA|op BBBB [op vAA, type@BBBB,op vAA, field@BBBB,op vAA, method_handle@BBBB,op vAA, proto@BBBB,op vAA, string@BBBB]
62 21c sget-object vAA, field@BBBB 字段操作指令用于对对象的静态字段进行读操作,根据访问的字段类型的不同,字段操作指令后面会紧跟字段类型的后缀。例如,sget-byte指令用于读取字段的值的类型为字节码类型 21c AA|op BBBB [op vAA, type@BBBB,op vAA, field@BBBB,op vAA, method_handle@BBBB,op vAA, proto@BBBB,op vAA, string@BBBB]
63 21c sget-boolean vAA, field@BBBB 字段操作指令用于对对象的静态字段进行读操作,根据访问的字段类型的不同,字段操作指令后面会紧跟字段类型的后缀。例如,sget-byte指令用于读取字段的值的类型为字节码类型 21c AA|op BBBB [op vAA, type@BBBB,op vAA, field@BBBB,op vAA, method_handle@BBBB,op vAA, proto@BBBB,op vAA, string@BBBB]
64 21c sget-byte vAA, field@BBBB 字段操作指令用于对对象的静态字段进行读操作,根据访问的字段类型的不同,字段操作指令后面会紧跟字段类型的后缀。例如,sget-byte指令用于读取字段的值的类型为字节码类型 21c AA|op BBBB [op vAA, type@BBBB,op vAA, field@BBBB,op vAA, method_handle@BBBB,op vAA, proto@BBBB,op vAA, string@BBBB]
65 21c sget-char vAA, field@BBBB 字段操作指令用于对对象的静态字段进行读操作,根据访问的字段类型的不同,字段操作指令后面会紧跟字段类型的后缀。例如,sget-byte指令用于读取字段的值的类型为字节码类型 21c AA|op BBBB [op vAA, type@BBBB,op vAA, field@BBBB,op vAA, method_handle@BBBB,op vAA, proto@BBBB,op vAA, string@BBBB]
66 21c sget-short vAA, field@BBBB 字段操作指令用于对对象的静态字段进行读操作,根据访问的字段类型的不同,字段操作指令后面会紧跟字段类型的后缀。例如,sget-byte指令用于读取字段的值的类型为字节码类型 21c AA|op BBBB [op vAA, type@BBBB,op vAA, field@BBBB,op vAA, method_handle@BBBB,op vAA, proto@BBBB,op vAA, string@BBBB]
67 21c sput vAA, field@BBBB 字段操作指令用于对对象的静态字段进行写操作,根据访问的字段类型的不同,字段操作指令后面会紧跟字段类型的后缀。例如,sput-byte指令用于设置字段的值的类型为字节码类型 21c AA|op BBBB [op vAA, type@BBBB,op vAA, field@BBBB,op vAA, method_handle@BBBB,op vAA, proto@BBBB,op vAA, string@BBBB]
68 21c sput-wide vAA, field@BBBB 字段操作指令用于对对象的静态字段进行写操作,根据访问的字段类型的不同,字段操作指令后面会紧跟字段类型的后缀。例如,sput-byte指令用于设置字段的值的类型为字节码类型 21c AA|op BBBB [op vAA, type@BBBB,op vAA, field@BBBB,op vAA, method_handle@BBBB,op vAA, proto@BBBB,op vAA, string@BBBB]
69 21c sput-object vAA, field@BBBB 字段操作指令用于对对象的静态字段进行写操作,根据访问的字段类型的不同,字段操作指令后面会紧跟字段类型的后缀。例如,sput-byte指令用于设置字段的值的类型为字节码类型 21c AA|op BBBB [op vAA, type@BBBB,op vAA, field@BBBB,op vAA, method_handle@BBBB,op vAA, proto@BBBB,op vAA, string@BBBB]
6a 21c sput-boolean vAA, field@BBBB 字段操作指令用于对对象的静态字段进行写操作,根据访问的字段类型的不同,字段操作指令后面会紧跟字段类型的后缀。例如,sput-byte指令用于设置字段的值的类型为字节码类型 21c AA|op BBBB [op vAA, type@BBBB,op vAA, field@BBBB,op vAA, method_handle@BBBB,op vAA, proto@BBBB,op vAA, string@BBBB]
6b 21c sput-byte vAA, field@BBBB 字段操作指令用于对对象的静态字段进行写操作,根据访问的字段类型的不同,字段操作指令后面会紧跟字段类型的后缀。例如,sput-byte指令用于设置字段的值的类型为字节码类型 21c AA|op BBBB [op vAA, type@BBBB,op vAA, field@BBBB,op vAA, method_handle@BBBB,op vAA, proto@BBBB,op vAA, string@BBBB]
6c 21c sput-char vAA, field@BBBB 字段操作指令用于对对象的静态字段进行写操作,根据访问的字段类型的不同,字段操作指令后面会紧跟字段类型的后缀。例如,sput-byte指令用于设置字段的值的类型为字节码类型 21c AA|op BBBB [op vAA, type@BBBB,op vAA, field@BBBB,op vAA, method_handle@BBBB,op vAA, proto@BBBB,op vAA, string@BBBB]
6d 21c sput-short vAA, field@BBBB 字段操作指令用于对对象的静态字段进行写操作,根据访问的字段类型的不同,字段操作指令后面会紧跟字段类型的后缀。例如,sput-byte指令用于设置字段的值的类型为字节码类型 21c AA|op BBBB [op vAA, type@BBBB,op vAA, field@BBBB,op vAA, method_handle@BBBB,op vAA, proto@BBBB,op vAA, string@BBBB]
6e 35c invoke-virtual {vC,vD,vE,vF,vG}, meth@BBBB 用于调用实例的虚方法 ,meth@BBBB表示16位方法引用索引,vC-vG表示方法所需参数寄存器 35c A|G|op BBBB F|E|D|C [A=5] op {vC, vD, vE, vF, vG}, meth@BBBB,[A=5] op {vC, vD, vE, vF, vG}, site@BBBB,[A=5] op {vC, vD, vE, vF, vG}, type@BBBB,[A=4] op {vC, vD, vE, vF}, kind@BBBB,[A=3] op {vC, vD, vE}, kind@BBBB,[A=2] op {vC, vD}, kind@BBBB,[A=1] op {vC}, kind@BBBB,[A=0] op {}, kind@BBBB
6f 35c invoke-super {vC,vD,vE,vF,vG}, meth@BBBB 用于调用实例的父方法 ,meth@BBBB表示16位方法引用索引,vC-vG表示方法所需参数寄存器 35c A|G|op BBBB F|E|D|C [A=5] op {vC, vD, vE, vF, vG}, meth@BBBB,[A=5] op {vC, vD, vE, vF, vG}, site@BBBB,[A=5] op {vC, vD, vE, vF, vG}, type@BBBB,[A=4] op {vC, vD, vE, vF}, kind@BBBB,[A=3] op {vC, vD, vE}, kind@BBBB,[A=2] op {vC, vD}, kind@BBBB,[A=1] op {vC}, kind@BBBB,[A=0] op {}, kind@BBBB
70 35c invoke-direct {vC,vD,vE,vF,vG}, meth@BBBB 用于调用实例的直接方法,meth@BBBB表示16位方法引用索引,vC-vG表示方法所需参数寄存器 35c A|G|op BBBB F|E|D|C [A=5] op {vC, vD, vE, vF, vG}, meth@BBBB,[A=5] op {vC, vD, vE, vF, vG}, site@BBBB,[A=5] op {vC, vD, vE, vF, vG}, type@BBBB,[A=4] op {vC, vD, vE, vF}, kind@BBBB,[A=3] op {vC, vD, vE}, kind@BBBB,[A=2] op {vC, vD}, kind@BBBB,[A=1] op {vC}, kind@BBBB,[A=0] op {}, kind@BBBB
71 35c invoke-static {vC,vD,vE,vF,vG}, meth@BBBB 用于调用实例的静态方法,meth@BBBB表示16位方法引用索引,vC-vG表示方法所需参数寄存器 35c A|G|op BBBB F|E|D|C [A=5] op {vC, vD, vE, vF, vG}, meth@BBBB,[A=5] op {vC, vD, vE, vF, vG}, site@BBBB,[A=5] op {vC, vD, vE, vF, vG}, type@BBBB,[A=4] op {vC, vD, vE, vF}, kind@BBBB,[A=3] op {vC, vD, vE}, kind@BBBB,[A=2] op {vC, vD}, kind@BBBB,[A=1] op {vC}, kind@BBBB,[A=0] op {}, kind@BBBB
72 35c invoke-interface {vC,vD,vE,vF,vG}, meth@BBBB 用于调用实例的接口方法,meth@BBBB表示16位方法引用索引,vC-vG表示方法所需参数寄存器 35c A|G|op BBBB F|E|D|C [A=5] op {vC, vD, vE, vF, vG}, meth@BBBB,[A=5] op {vC, vD, vE, vF, vG}, site@BBBB,[A=5] op {vC, vD, vE, vF, vG}, type@BBBB,[A=4] op {vC, vD, vE, vF}, kind@BBBB,[A=3] op {vC, vD, vE}, kind@BBBB,[A=2] op {vC, vD}, kind@BBBB,[A=1] op {vC}, kind@BBBB,[A=0] op {}, kind@BBBB
74 3rc invoke-virtual/range {vCCCC .. vNNNN}, meth@BBBB 用于调用实例的虚方法 ,meth@BBBB表示16位方法引用索引 3rc AA|op BBBB CCCC [op {vCCCC .. vNNNN}, meth@BBBB,op {vCCCC .. vNNNN}, site@BBBB,op {vCCCC .. vNNNN}, type@BBBB]
75 3rc invoke-super/range {vCCCC .. vNNNN}, meth@BBBB 用于调用实例的父方法 ,meth@BBBB表示16位方法引用索引 3rc AA|op BBBB CCCC [op {vCCCC .. vNNNN}, meth@BBBB,op {vCCCC .. vNNNN}, site@BBBB,op {vCCCC .. vNNNN}, type@BBBB]
76 3rc invoke-direct/range {vCCCC .. vNNNN}, meth@BBBB 用于调用实例的直接方法,meth@BBBB表示16位方法引用索引 3rc AA|op BBBB CCCC [op {vCCCC .. vNNNN}, meth@BBBB,op {vCCCC .. vNNNN}, site@BBBB,op {vCCCC .. vNNNN}, type@BBBB]
77 3rc invoke-static/range {vCCCC .. vNNNN}, meth@BBBB 用于调用实例的静态方法,meth@BBBB表示16位方法引用索引 3rc AA|op BBBB CCCC [op {vCCCC .. vNNNN}, meth@BBBB,op {vCCCC .. vNNNN}, site@BBBB,op {vCCCC .. vNNNN}, type@BBBB]
78 3rc invoke-interface/range {vCCCC .. vNNNN}, meth@BBBB 用于调用实例的接口方法,meth@BBBB表示16位方法引用索引 3rc AA|op BBBB CCCC [op {vCCCC .. vNNNN}, meth@BBBB,op {vCCCC .. vNNNN}, site@BBBB,op {vCCCC .. vNNNN}, type@BBBB]
7b 12x neg-int vA, vB 用于对整型数求补。vB寄存器中存放了需要转换的数据,转换结果保存在vA寄存器中。 12x B|A|op op vA, vB
7c 12x not-int vA, vB 用于对整型数求反。vB寄存器中存放了需要转换的数据,转换结果保存在vA寄存器中。 12x B|A|op op vA, vB
7d 12x neg-long vA, vB 用于对长整型数求补。vB寄存器中存放了需要转换的数据,转换结果保存在vA寄存器中。 12x B|A|op op vA, vB
7e 12x not-long vA, vB 用于对长整型数求反。vB寄存器中存放了需要转换的数据,转换结果保存在vA寄存器中。 12x B|A|op op vA, vB
7f 12x neg-float vA, vB 用于对单精度浮点型数求补。vB寄存器中存放了需要转换的数据,转换结果保存在vA寄存器中。 12x B|A|op op vA, vB
80 12x neg-double vA, vB 用于对双精度浮点型数求补。vB寄存器中存放了需要转换的数据,转换结果保存在vA寄存器中。 12x B|A|op op vA, vB
81 12x int-to-long vA, vB 用于将整型数转换为长整型数。vB寄存器中存放了需要转换的数据,转换结果保存在vA寄存器中。 12x B|A|op op vA, vB
82 12x int-to-float vA, vB 用于将整型数转换为单精度浮点型。vB寄存器中存放了需要转换的数据,转换结果保存在vA寄存器中。 12x B|A|op op vA, vB
83 12x int-to-double vA, vB 用于将整型数转换为双精度浮点型。vB寄存器中存放了需要转换的数据,转换结果保存在vA寄存器中。 12x B|A|op op vA, vB
84 12x long-to-int vA, vB 用于将长整型数转换为整型数。vB寄存器中存放了需要转换的数据,转换结果保存在vA寄存器中。 12x B|A|op op vA, vB
85 12x long-to-float vA, vB 用于将长整型数转换为单精度浮点型。vB寄存器中存放了需要转换的数据,转换结果保存在vA寄存器中。 12x B|A|op op vA, vB
86 12x long-to-double vA, vB 用于将长整型数转换为双精度浮点型。vB寄存器中存放了需要转换的数据,转换结果保存在vA寄存器中。 12x B|A|op op vA, vB
87 12x float-to-int vA, vB 用于将单精度浮点型转换为整数型。vB寄存器中存放了需要转换的数据,转换结果保存在vA寄存器中。 12x B|A|op op vA, vB
88 12x float-to-long vA, vB 用于将单精度浮点型转换为长整型。vB寄存器中存放了需要转换的数据,转换结果保存在vA寄存器中。 12x B|A|op op vA, vB
89 12x float-to-double vA, vB 用于将单精度浮点型转换为双精度浮点型。vB寄存器中存放了需要转换的数据,转换结果保存在vA寄存器中。 12x B|A|op op vA, vB
8a 12x double-to-int vA, vB 用于将双精度浮点型转换为整数型。vB寄存器中存放了需要转换的数据,转换结果保存在vA寄存器中。 12x B|A|op op vA, vB
8b 12x double-to-long vA, vB 用于将双精度浮点型转换为长整型。vB寄存器中存放了需要转换的数据,转换结果保存在vA寄存器中。 12x B|A|op op vA, vB
8c 12x double-to-float vA, vB 用于将双精度浮点型转换为单精度浮点型。vB寄存器中存放了需要转换的数据,转换结果保存在vA寄存器中。 12x B|A|op op vA, vB
8d 12x int-to-byte vA, vB 用于将整型数转换为字节型。vB寄存器中存放了需要转换的数据,转换结果保存在vA寄存器中。 12x B|A|op op vA, vB
8e 12x int-to-char vA, vB 用于将整数型转换为字符型。vB寄存器中存放了需要转换的数据,转换结果保存在vA寄存器中。 12x B|A|op op vA, vB
8f 12x int-to-short vA, vB 用于将整型数转换为短整型。vB寄存器中存放了需要转换的数据,转换结果保存在vA寄存器中。 12x B|A|op op vA, vB
90 23x add-int vAA, vBB, vCC vBB寄存器与vCC寄存器进行加法运算,将运算结果保存到vAA寄存器中 23x AA|op CC|BB op vAA, vBB, vCC
91 23x sub-int vAA, vBB, vCC vBB寄存器与vCC寄存器进行减法运算,将运算结果保存到vAA寄存器中 23x AA|op CC|BB op vAA, vBB, vCC
92 23x mul-int vAA, vBB, vCC vBB寄存器与vCC寄存器进行乘法运算,将运算结果保存到vAA寄存器中 23x AA|op CC|BB op vAA, vBB, vCC
93 23x div-int vAA, vBB, vCC vBB寄存器与vCC寄存器进行除法运算,将运算结果保存到vAA寄存器中 23x AA|op CC|BB op vAA, vBB, vCC
94 23x rem-int vAA, vBB, vCC vBB寄存器与vCC寄存器进行模运(vBB % vCC)算,将运算结果保存到vAA寄存器中 23x AA|op CC|BB op vAA, vBB, vCC
95 23x and-int vAA, vBB, vCC vBB寄存器与vCC寄存器进行与运(vBB and vCC)算,将运算结果保存到vAA寄存器中 23x AA|op CC|BB op vAA, vBB, vCC
96 23x or-int vAA, vBB, vCC vBB寄存器与vCC寄存器进行或(vBB or vCC)运算,将运算结果保存到vAA寄存器中 23x AA|op CC|BB op vAA, vBB, vCC
97 23x xor-int vAA, vBB, vCC vBB寄存器与vCC寄存器进行异或(vBB XOR vCC)运算,将运算结果保存到vAA寄存器中 23x AA|op CC|BB op vAA, vBB, vCC
98 23x shl-int vAA, vBB, vCC 将vBB寄存器的值(有符号数)左移vCC位(vBB<<vCC),将运算结果保存到vAA寄存器中 23x AA|op CC|BB op vAA, vBB, vCC
99 23x shr-int vAA, vBB, vCC 将vBB寄存器的值(有符号数)右移vCC位(vBB>>vCC),将运算结果保存到vAA寄存器中 23x AA|op CC|BB op vAA, vBB, vCC
9a 23x ushr-int vAA, vBB, vCC 将vBB寄存器的值(无符号数)右移vCC位(vBB>>vCC),将运算结果保存到vAA寄存器中 23x AA|op CC|BB op vAA, vBB, vCC
9b 23x add-long vAA, vBB, vCC vBB寄存器与vCC寄存器进行加法运算,将运算结果保存到vAA寄存器中 23x AA|op CC|BB op vAA, vBB, vCC
9c 23x sub-long vAA, vBB, vCC vBB寄存器与vCC寄存器进行减法运算,将运算结果保存到vAA寄存器中 23x AA|op CC|BB op vAA, vBB, vCC
9d 23x mul-long vAA, vBB, vCC vBB寄存器与vCC寄存器进行乘法运算,将运算结果保存到vAA寄存器中 23x AA|op CC|BB op vAA, vBB, vCC
9e 23x div-long vAA, vBB, vCC vBB寄存器与vCC寄存器进行除法运算,将运算结果保存到vAA寄存器中 23x AA|op CC|BB op vAA, vBB, vCC
9f 23x rem-long vAA, vBB, vCC vBB寄存器与vCC寄存器进行模运(vBB % vCC)算,将运算结果保存到vAA寄存器中 23x AA|op CC|BB op vAA, vBB, vCC
a0 23x and-long vAA, vBB, vCC vBB寄存器与vCC寄存器进行与运(vBB and vCC)算,将运算结果保存到vAA寄存器中 23x AA|op CC|BB op vAA, vBB, vCC
a1 23x or-long vAA, vBB, vCC vBB寄存器与vCC寄存器进行或(vBB or vCC)运算,将运算结果保存到vAA寄存器中 23x AA|op CC|BB op vAA, vBB, vCC
a2 23x xor-long vAA, vBB, vCC vBB寄存器与vCC寄存器进行异或(vBB XOR vCC)运算,将运算结果保存到vAA寄存器中 23x AA|op CC|BB op vAA, vBB, vCC
a3 23x shl-long vAA, vBB, vCC 将vBB寄存器的值(有符号数)左移vCC位(vBB<<vCC),将运算结果保存到vAA寄存器中 23x AA|op CC|BB op vAA, vBB, vCC
a4 23x shr-long vAA, vBB, vCC 将vBB寄存器的值(有符号数)右移vCC位(vBB>>vCC),将运算结果保存到vAA寄存器中 23x AA|op CC|BB op vAA, vBB, vCC
a5 23x ushr-long vAA, vBB, vCC 将vBB寄存器的值(无符号数)右移vCC位(vBB>>vCC),将运算结果保存到vAA寄存器中 23x AA|op CC|BB op vAA, vBB, vCC
a6 23x add-float vAA, vBB, vCC vBB寄存器与vCC寄存器进行加法运算,将运算结果保存到vAA寄存器中 23x AA|op CC|BB op vAA, vBB, vCC
a7 23x sub-float vAA, vBB, vCC vBB寄存器与vCC寄存器进行减法运算,将运算结果保存到vAA寄存器中 23x AA|op CC|BB op vAA, vBB, vCC
a8 23x mul-float vAA, vBB, vCC vBB寄存器与vCC寄存器进行乘法运算,将运算结果保存到vAA寄存器中 23x AA|op CC|BB op vAA, vBB, vCC
a9 23x div-float vAA, vBB, vCC vBB寄存器与vCC寄存器进行除法运算,将运算结果保存到vAA寄存器中 23x AA|op CC|BB op vAA, vBB, vCC
aa 23x rem-float vAA, vBB, vCC vBB寄存器与vCC寄存器进行模运(vBB % vCC)算,将运算结果保存到vAA寄存器中 23x AA|op CC|BB op vAA, vBB, vCC
ab 23x add-double vAA, vBB, vCC vBB寄存器与vCC寄存器进行加法运算,将运算结果保存到vAA寄存器中 23x AA|op CC|BB op vAA, vBB, vCC
ac 23x sub-double vAA, vBB, vCC vBB寄存器与vCC寄存器进行减法运算,将运算结果保存到vAA寄存器中 23x AA|op CC|BB op vAA, vBB, vCC
ad 23x mul-double vAA, vBB, vCC vBB寄存器与vCC寄存器进行乘法运算,将运算结果保存到vAA寄存器中 23x AA|op CC|BB op vAA, vBB, vCC
ae 23x div-double vAA, vBB, vCC vBB寄存器与vCC寄存器进行除法运算,将运算结果保存到vAA寄存器中 23x AA|op CC|BB op vAA, vBB, vCC
af 23x rem-double vAA, vBB, vCC vBB寄存器与vCC寄存器进行模运(vBB % vCC)算,将运算结果保存到vAA寄存器中 23x AA|op CC|BB op vAA, vBB, vCC
b0 12x add-int/2addr vA,vB vA寄存器与vB寄存器进行加法运算,将运算结果保存到vA寄存器中 12x B|A|op op vA, vB
b1 12x sub-int/2addr vA,vB vA寄存器与vB寄存器进行减法运算,将运算结果保存到vA寄存器中 12x B|A|op op vA, vB
b2 12x mul-int/2addr vA,vB vA寄存器与vB寄存器进行乘法运算,将运算结果保存到vA寄存器中 12x B|A|op op vA, vB
b3 12x div-int/2addr vA,vB vA寄存器与vB寄存器进行除法运算,将运算结果保存到vA寄存器中 12x B|A|op op vA, vB
b4 12x rem-int/2addr vA,vB vA寄存器与vB寄存器进行模运(vA % vB)算,将运算结果保存到vA寄存器中 12x B|A|op op vA, vB
b5 12x and-int/2addr vA,vB vA寄存器与vB寄存器进行与运(vA and vB)算,将运算结果保存到vA寄存器中 12x B|A|op op vA, vB
b6 12x or-int/2addr vA,vB vA寄存器与vB寄存器进行或(vA or vB)运算,将运算结果保存到vA寄存器中 12x B|A|op op vA, vB
b7 12x xor-int/2addr vA,vB vA寄存器与vB寄存器进行异或(vA XOR vB)运算,将运算结果保存到vA寄存器中 12x B|A|op op vA, vB
b8 12x shl-int/2addr vA,vB 将vA寄存器的值(有符号数)左移vB位(vA<<vB),将运算结果保存到vA寄存器中 12x B|A|op op vA, vB
b9 12x shr-int/2addr vA,vB 将vA寄存器的值(有符号数)右移vB位(vA>>vB),将运算结果保存到vA寄存器中 12x B|A|op op vA, vB
ba 12x ushr-int/2addr vA,vB 将vA寄存器的值(无符号数)右移vB位(vA>>vB),将运算结果保存到vA寄存器中 12x B|A|op op vA, vB
bb 12x add-long/2addr vA,vB vA寄存器与vB寄存器进行加法运算,将运算结果保存到vA寄存器中 12x B|A|op op vA, vB
bc 12x sub-long/2addr vA,vB vA寄存器与vB寄存器进行减法运算,将运算结果保存到vA寄存器中 12x B|A|op op vA, vB
bd 12x mul-long/2addr vA,vB vA寄存器与vB寄存器进行乘法运算,将运算结果保存到vA寄存器中 12x B|A|op op vA, vB
be 12x div-long/2addr vA,vB vA寄存器与vB寄存器进行除法运算,将运算结果保存到vA寄存器中 12x B|A|op op vA, vB
bf 12x rem-long/2addr vA,vB vA寄存器与vB寄存器进行模运(vA % vB)算,将运算结果保存到vA寄存器中 12x B|A|op op vA, vB
c0 12x and-long/2addr vA,vB vA寄存器与vB寄存器进行与运(vA and vB)算,将运算结果保存到vA寄存器中 12x B|A|op op vA, vB
c1 12x or-long/2addr vA,vB vA寄存器与vB寄存器进行或(vA or vB)运算,将运算结果保存到vA寄存器中 12x B|A|op op vA, vB
c2 12x xor-long/2addr vA,vB vA寄存器与vB寄存器进行异或(vA XOR vB)运算,将运算结果保存到vA寄存器中 12x B|A|op op vA, vB
c3 12x shl-long/2addr vA,vB 将vA寄存器的值(有符号数)左移vB位(vA<<vB),将运算结果保存到vA寄存器中 12x B|A|op op vA, vB
c4 12x shr-long/2addr vA,vB 将vA寄存器的值(有符号数)右移vB位(vA>>vB),将运算结果保存到vA寄存器中 12x B|A|op op vA, vB
c5 12x ushr-long/2addr vA,vB 将vA寄存器的值(无符号数)右移vB位(vA>>vB),将运算结果保存到vA寄存器中 12x B|A|op op vA, vB
c6 12x add-float/2addr vA,vB vA寄存器与vB寄存器进行加法运算,将运算结果保存到vA寄存器中 12x B|A|op op vA, vB
c7 12x sub-float/2addr vA,vB vA寄存器与vB寄存器进行减法运算,将运算结果保存到vA寄存器中 12x B|A|op op vA, vB
c8 12x mul-float/2addr vA,vB vA寄存器与vB寄存器进行乘法运算,将运算结果保存到vA寄存器中 12x B|A|op op vA, vB
c9 12x div-float/2addr vA,vB vA寄存器与vB寄存器进行除法运算,将运算结果保存到vA寄存器中 12x B|A|op op vA, vB
ca 12x rem-float/2addr vA,vB vA寄存器与vB寄存器进行模运(vA % vB)算,将运算结果保存到vA寄存器中 12x B|A|op op vA, vB
cb 12x add-double/2addr vA,vB vA寄存器与vB寄存器进行加法运算,将运算结果保存到vA寄存器中 12x B|A|op op vA, vB
cc 12x sub-double/2addr vA,vB vA寄存器与vB寄存器进行减法运算,将运算结果保存到vA寄存器中 12x B|A|op op vA, vB
cd 12x mul-double/2addr vA,vB vA寄存器与vB寄存器进行乘法运算,将运算结果保存到vA寄存器中 12x B|A|op op vA, vB
ce 12x div-double/2addr vA,vB vA寄存器与vB寄存器进行除法运算,将运算结果保存到vA寄存器中 12x B|A|op op vA, vB
cf 12x rem-double/2addr vA,vB vA寄存器与vB寄存器进行模运(vA % vB)算,将运算结果保存到vA寄存器中 12x B|A|op op vA, vB
d0 22s add-int/lit16 22s
d1 22s rsub-int 22s
d2 22s mul-int/lit16 22s
d3 22s div-int/lit16 22s
d4 22s rem-int/lit16 22s
d5 22s and-int/lit16 22s
d6 22s or-int/lit16 22s
d7 22s xor-int/lit16 22s
d8 22b add-int/lit8 22b
d9 22b rsub-int/lit8 22b
da 22b mul-int/lit8 22b
db 22b div-int/lit8 22b
dc 22b rem-int/lit8 22b
dd 22b and-int/lit8 22b
de 22b or-int/lit8 22b
df 22b xor-int/lit8 22b
e0 22b shl-int/lit8 22b
e1 22b shr-int/lit8 22b
e2 22b ushr-int/lit8 22b
随意分享,您的支持将鼓励我继续创作!