-1

在 C 中,像许多其他语言一样,有if语句。您可以在编写其他语言(如 C++ 或 Ruby)时使用该逻辑。但是,最低级别的if语句是如何工作的?

条件如何在最低级别发挥作用?我不明白如何以非递归方式定义它。

4

2 回答 2

3

您始终可以查看生成的程序集,但它通常实现为分支或跳转指令。

    if ( x == y )
001E149C  mov         eax,dword ptr [x]  
001E149F  cmp         eax,dword ptr [y]  
001E14A2  jne         wmain+3Ah (1E14AAh)  
        return 0;
001E14A4  xor         eax,eax  
001E14A6  jmp         wmain+3Fh (1E14AFh)  
    else
001E14A8  jmp         wmain+3Fh (1E14AFh)  
        return 1;
001E14AA  mov         eax,1  

if 基本上是jne(跳转不等于)指令。如果两个值 (xy) 不相等,则跳转到else,否则继续执行并跳出if.

于 2012-10-11T06:12:00.360 回答
2

在最低级别,它们是在物理硬件中实现的。它们不是用其他东西定义的,它们实际上是物理实现的。

于 2012-10-11T06:13:06.167 回答