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寄存器中的对象引用的监视器。 |
Smali语法汇总(二)
最新推荐文章于 2023-08-13 12:11:40 发布