如何在最基本的层面上编写逻辑门?

时间:2012-10-11 06:09:44

标签: c assembly if-statement logic

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

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

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:2)

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