do while
这里do while很简单就没什么好说的了。
总结:
1、根据条件跳转指令所跳转到的地址,可以得到循环语句块的起始地址。
2、根据条件跳转指令所在的地址,可以得到循环语句块的结束地址。
while
总结:
1、根据条件跳转指令所跳转到的地址,可以得到循环语句块的结束地址;
2、根据jmp 指令所跳转到的地址,可以得到循环语句块的起始地址;
3、在还原while 比较时,条件跳转的逻辑与源码相反。
for 语句的语法
总结:
1、第一个jmp 指令之前为赋初值部分.
2、第一个jmp 指令所跳转的地址为循环条件判定部分起始.
3、判断条件后面的跳转指令条件成立时跳转的循环体外面
4、条件判断跳转指令所指向的地址上面有一个jmp jmp地址为表达式3的起始位置