您的位置:首页 > 编程语言 > C语言/C++

C语言的if 语句的解析

2013-06-23 23:39 225 查看
int i,j;
i=123;
j=234;
if(i<j)
printf("%d %d\n",i,j);
return 0;

i j 是main函数的变量

00401028 |. C745 FC 7B000>mov [local.1],7B ; i=123
  0040102F |. C745 F8 EA000>mov [local.2],0EA ; j=234
  00401036 |. 8B45 FC mov eax,[local.1] ; 将 i 赋给eax
  00401039 |. 3B45 F8 cmp eax,[local.2] ; 将eax和j做比较
  0040103C |. 7D 15 jge short pp1.00401053 ;若i>=j 则跳过下面的语句,直接指向401053,即eax=0
  0040103E |. 8B4D F8 mov ecx,[local.2] ; 从右向左压入参数。依次是 j i ,字符串"sdfa
  00401041 |. 51 push ecx ; /<%d>
  00401042 |. 8B55 FC mov edx,[local.1] ; |
  00401045 |. 52 push edx ; |<%d>
  00401046 |. 68 1C204200 push pp1.0042201C ; |%d %d\n
  0040104B |. E8 30000000 call pp1.printf ; \printf
  00401050 |. 83C4 0C add esp,0C
  00401053 |> 33C0 xor eax,eax
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: