016--JLE JNG(小于等于)
一、指令格式
条件转移指令 JLE/JNG
格式: JLE/JNG 标号地址
功能: 小于等于/不大于 时转到标号地址
JNG 有符号 不大于 则跳转 //Jump if Not Greater
JLE 有符号 小于等于 则跳转 //Jump if Less or Equal
SF=1,ZF=1,OF=1 //其中一个或者多个为1 则跳转
二、代码测试
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 int _tmain(int argc, _TCHAR* argv[]) 2 { 3 printf("begin\n"); 4 int a = 3; 5 int b = 5; 6 if (a>b) //JLE/JNG 小于等于/不大于时转移 7 { 8 printf("do this"); 9 } 10 printf("end;\n"); 11 return 0; 12 }
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 int _tmain(int argc, _TCHAR* argv[]) 2 { 3 printf("begin\n"); 4 int a=3; 5 int b=5; 6 __asm 7 { 8 mov ebx,b 9 cmp a,ebx 10 jle end; 11 } 12 printf("do this"); 13 end: 14 printf("end;\n"); 15 return 0; 16 17 }
以上2段代码相等
在OllyDbg 下调试
SF=1,ZF=1,OF=1 //其中一个或者多个为1 则跳转
将不朽的青春献给伟大的编程事业,世界将因我们而改变!