关于Dalvik指令操作码和指令格式的对应关系,以及指令格式中的"kind@"的含义

Dalvik指令一条操作码对应一条唯一的指令格式,而一条指令格式可能对应多个操作码。


例如,7010 0400 0000 0e00

opCode为0x70的操作码,它对应的指令格式是35c,格式35c对应如下几个指令:

[A=5]  op  {vC, vD, vE, vF, vG},  meth@BBBB

.........……

[A=1] op  {vC},  kind@BBBB

[A=0]  op  {},  kind@BBBB


这条指令对应于:[A=1] op  {vC},  kind@BBBB


而opCode为0x6e同样对应于指令格式35c,opCode 0x63对应的汇编指令为invoke-virtual


指令格式中,"king@"总共有6种类型,分别为:

meth:

field:

type:

string:

vtaoff:

fieldoff:


有的时候,在指令格式中不会明确说明"king@"是meth或field等,而是只是隐式的说为"kind@",在这种情况下不影响指令确定”kind@“类型,因为每种指令已经约定好了"kind@"是什么类型,比如说opCode 0x70对应的"kind@"为方法类型(meth)




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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值