c - 逻辑门的最基本层次是如何编写的?

标签 c assembly if-statement logic

在 C 中,像许多其他语言一样,有 if陈述。您可以在编写其他语言(例如 C++ 或 Ruby)时使用该逻辑。然而,最底层的if怎么做?声明工作?

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

最佳答案

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

    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,否则继续执行并跳出 如果

关于c - 逻辑门的最基本层次是如何编写的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12833237/

相关文章:

c++ - 在链表中查找损坏

C - 十六进制值 0x00 未写入文件

assembly - LLVM 4.0 的内联汇编问题

c - 进入main之前的四个执行步骤是什么?

c++ - if 语句和 else if 语句都执行

android - 创建syncml客户端和服务器

在C中将UTC时间转换为unix时间戳

assembly - ARM-Assembly : Arithmetic Shift/Logical Shift

ruby-on-rails - 使用 if 命令的 Rails、Sass 和 MaterializeCSS 变量

javascript - 如何测试变量是否不等于两个值中的任何一个?