标签:
jvm虚拟机:指令集为零地址形式的指令集,即指令的源参数和目标参数都是隐含的,通过java虚拟机中提供的一种数据结构“求值栈”来传递。
dalvik虚拟机运行时也为每个线程维护一个PC计数器和调用栈,此调用栈 维护一份寄存器列表,寄存器的数量在方法结构体的registers字段中给出,DVM根据这个值来创建一份虚拟的寄存器列表。
Dalvik opcodes: http://pallergabor.uw.hu/androidblog/dalvik_opcodes.html
For binary XML files, use a binary-to-textual XML converter like AXMLPrinter2
● For the DEX file, use dedexer
● Alternative products:
– Dexdump – comes with the Android SDK, less convenient to use than dedexer because e.g. it does not support labels, produces one large file, etc.
– Baksmali – a competing open-source DEX disassembler. Comes with a Dalvik bytecode assembler (smali)
DVM是作用特定架构的cpu上的,设计之处采用了ARM架构,arm架构的cpu本身集成了多个寄存器,dalvik将部份寄存器映射到arm寄存器上,还有一部分通过调用栈进行模拟。共65526个寄存器,取值范围v0 - v65535.
虚拟机中的每个寄存器都是32位的,描述指令时所说的位数表示的是寄存器数值的取值范围。
标签:
原文地址:http://www.cnblogs.com/CarrieCui/p/5097797.html