数据类型
Java数据类型 | dalvik数据类型 |
int | I |
byte | B |
char | C |
double | D |
float | F |
long | J |
short | S |
void | V |
boolean | Z |
array | [ |
object | L |
最后的数据和对象数据类型举例:
[I ---> int[]
Ljava/lang/String; ----> java.lang.String
即:L包名/对象名; 如果是内部类:LpackageName/objectName$subObjectName;
函数定义(语法)
1.赋值 move -wide、-object、-result、-result-wide、-result-object、-exception 、/from16 、/16
例如,在指令“move-wide/from16 vAA, vBBBB
”中:
- “
move
”为基础运算码,表示这是基本运算(移动寄存器的值)。 - “
wide
”为名称后缀,表示指令对较宽(64 位)数据进行运算。 - “
from16
”为运算码后缀,表示具有 16 位寄存器引用源的变体。 - “
vAA
”为目标寄存器(隐含在运算中;并且,规定目标参数始终在前),取值范围为v0
-v255
。 - “
vBBBB
”为源寄存器,取值范围为v0
-v65535
。
2.返回 return -void、-wide、-object
例如,在指令“return-wide vAA”中:
- “return”为方法返回。
- “wide”为名称后缀,表示指令对较宽(64 位)数据进行运算。
- “vAA”为目标寄存器(隐含在运算中;并且,规定目标参数始终在前),取值范围为
v0
-v255
。
3.移值 const -wide、-string、-class、/jumbo、/high16、/32、/16、/high16、/4
例如,在指令“const-wide/16 vAA, #+BBBB”中:
- “const”将给定的字面值移到指定的寄存器对中。
- “wide”为名称后缀,表示指令对较宽(64 位)数据进行运算。
- “/16” 为有符号整数(16 位)。
- “vAA”为目标寄存器(隐含在运算中;并且,规定目标参数始终在前),取值范围为
v0
-v255
。 - “#+BBBB” 为有符号整数(16 位)。
4.对象锁 monitor -enter、-exit (获取、释放)
例如,在指令“monitor-exit vAA”中:
- 释放指定对象的监视锁。
5.