一,if
int main()
{
int a=1,b,c;//为了简单起见,不包含任何文件!!
if(a<666){
b=a;
}
}
//注:codeblocks不知道为啥,比较666到了汇编里面就是比较665,比较2又变成了比较1, //总是小1
把12(%esp)的指向的a和665比较,如果跳转了就是说跳到if{}后面去,如果没跳转就是直接执行{}里面的语句所以跳转条件总是和if的条件相反!!
二,if-else
解释:多了一个else其实就是不符合if条件是跳转到else那里
这里12(%esp)指向a,8(%esp)指向b,4(%esp)指向c
如果a>665(汇编显示的665)就是跳转到c=a;那里,也就是对应汇编的L2,通过中间的一个寄存器赋值到c