循环语句分析

1.do...while
do..while语句反汇编 :       
    DO_BEGIN地址:        
        影响标志位的指令    
        jxx DO_BEGIN    
例如:
总结: 
    1、根据条件跳转指令所跳转到的地址,可以得到循环语句块的起始地址。                                                
    2、根据条件跳转指令所在的地址,可以得到循环语句块的结束地址。                                                
    3、条件跳转的逻辑与源码相同。    
 
2.while语句
while语句反汇编:                    
WHILE_BEGIN:                    
    影响标志位的指令                
    jxx WHILE_END ;条件成立跳转到循环语句块结尾处                
    ......                
    jmp WHILE_BEGIN ;跳转到条件比较处                
WHILE_END:
例如:
总结:
    1、根据条件跳转指令所跳转到的地址,可以得到循环语句块的结束地址;                                        
    2、根据jmp 指令所跳转到的地址,可以得到循环语句块的起始地址;                                        
    3、在还原while 比较时,条件跳转的逻辑与源码相反。
 
3.for语句
总结:
    1、第一个jmp 指令之前为赋初值部分.                    
    2、第一个jmp 指令所跳转的地址为循环条件判定部分起始.                    
    3、判断条件后面的跳转指令条件成立时跳转到循环体外面                    
    4、条件判断跳转指令所指向的地址上面有一个jmp;该jmp地址为表达式3的起始位置    
 
 
 

转载于:https://www.cnblogs.com/ShiningArmor/p/11557991.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值