Smali数组操作指令

 数组操作指令中实现了获取数组长度,新建数组,数组赋值,数组元素取值与赋值等操作。

我们可以定义数组如下

int[] arr = new int[10];

其对应的 smali 如下

const/4 v1, 0xa

new-array v0, v1, I


如果我们直接在定义时,对数组进行初始化,如下

int[] arr = {1, 2, 3, 4, 5};

对应的 smali 如下

const/4 v1, 0x1

const/4 v2, 0x2

const/4 v3, 0x3

const/4 v4, 0x4

const/4 v5, 0x5

filled-new-array {v1, v2, v3, v4, v5}, I

move-result v0

在寄存器连续的情况下,还可以写成如下代码

const/4 v1, 0x1

const/4 v2, 0x2

const/4 v3, 0x3

const/4 v4, 0x4

const/4 v5, 0x5

filled-new-array-range {v1..v5}, I

move-result v0




发表评论