进入Android Dalvik虚拟机之Dalvik指令集
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 1. 指令特点 Dalvik指定在调用格式上模仿了C语言的调用约定。Dalvik指令的语法与助词符有如下特点: 参数采用从目标(destination)到源(source)的方式。 根据字节码的大小与类型不同,一些字节码添加了名称后缀以消除岐义。 32位常规类型的字节码末添加任何后缀。 64位常规类型的字节码添加 -wide后缀。 特殊类型的字节码根据具体类型添加后缀。它们可以是 -boolean,-byte,-char,-short,-int,-long,-float,-double,-object,-string,-class,-void之一。 根据字节码的布局与选项不同,一些字节码添加了字节码后缀以消除岐义。这些后缀通过在字节码主名称后添加斜杠“/”来分隔开。 在指令集的描述中,宽度值中每个字母表示宽度为4位。 例如这条指令:“move-wide/from16 vAA, vBBBB”: move为基础字节码(base opcode),标识这是基本操作。wide为名称后缀(name suffix),标识指令操作的数据宽度(64位)。from16为字节码后缀(opcode suffix),标识源为一个16位的寄存器引用变量。vAA为目的寄存器,它始终在源的前面,取值范围为v0~v255。vBBBB为源寄存器