Dalvik指令

Dalvik指令

指令语法由指令的位描述和指令格式标识来决定

 

16位的字采用空格分割开来

每个字母表示四位,按从高字节到低字节,每四位可用|来表示不同的内容

A-Z的单个大写字母作为一个4位操作码,op表示一个8位的操作码

Ø”来表示这字段所有位为0

 

 

 

 

A|G|op BBBB  F|E|D|C 第一个16位为A|G|op,其中A|G为高8位,op操作码为低8

BBBB 表示一个16位的偏移值 F|E|D|C共四个字节,表示寄存器参数

 

 

指令格式标识

  • 大多由三个字符组成,前两个数字,最后一个是字母
  • 第一个表示指令有多少个16位的字
  • 第二个表示指令有多少个寄存器、
  • 字母表示类型码

 

有一种特殊的情况是最后末尾多出一个字母,s表示采用静态链接,i表示内联处理

 

助记符 位大小 说明

b 8 8位有符号立即数

c 16,32 常量池索引

f 16 接口常量(仅对静态链接格式有效)

h 16有符号立即数(32位或64位数的高值位,低值位为0)

i 32 立即数,有符号整数或32位浮点数

l 64立即数,有符号整数或64位双精度浮点数http://

m 16 方法常量(仅对静态链接格式有效)

n 4 4位的立即数

s 16 短整型立即数

t 8,16,32 跳转、分支

x 0 无额外数据

关于Dalvik字节码解析可参考Bytecodefor the Dalvik VMDalvikVM Instruction Formats,一个是指令的位描述表,一个是指令的语法格式表.

来自 <http://blog.csdn.net/q327611906/article/details/50012869>

http://www.netmite.com/android/mydroid/dalvik/docs/dalvik-bytecode.html

http://www.netmite.com/android/mydroid/dalvik/docs/instruction-formats.html

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值