C语言的if 语句的解析

    int i,j;
    i=123;
    j=234;
    if(i<j)
        printf("%d %d ",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
  0040104B  |.  E8 30000000   call pp1.printf                          ; printf
  00401050  |.  83C4 0C       add esp,0C
  00401053  |>  33C0          xor eax,eax

                        

原文地址:https://www.cnblogs.com/ayhsoft/p/3151762.html