线性扫描和递归遍历
摘要:
DalvikVM 做字节码验证时用的是线性扫描法反汇编算法的两种:recursive traversal,递归遍历控制流根据一条指令是否被另一条指令引用来决定是否对其进行反汇编1. 顺序流指令顺序流指令将执行权传递给紧随其后的下一条指令。顺序流指令的例子包括简单算术指令,如add;寄存器与内存之间的传输指令,如mov;栈操作指令,如push和pop。这些指令的反汇编过程以线性扫描方式进行。2. 条件分支指令条件分支指令(如x86 jnz)提供两条可能的执行路径。如果条件为真,则执行分支,并且必须修改指令指针,使其指向分支的目标。但是,如果条件为假,则继续以线性模式执行指令,并使用线性扫描方法反 阅读全文
posted @ 2012-10-11 22:53 Happykiller 阅读(733) 评论(0) 推荐(0) 编辑