晶体管级别的"if"语句是什么?

Nea*_*lon 8 logic if-statement low-level

我最近参加了数字逻辑课程并学习了所有关于AND,OR和其他各种逻辑的知识.我们没有涉及的一件事,对编程来说是完全必要的,是if陈述,让我对他们的工作方式感到好奇.

我最好的猜测是它只是一个2:1的多路复用器,当你添加更多else语句时,它会变成4:1和8:1,但对于这样一个简单的概念来说,这似乎有点过于复杂.

任何人都知道一个if声明实际上转化为什么?

Hot*_*cks 1

您忘记了程序是作为单独的指令执行的,并且(至少在最简单的情况下)指令是按顺序执行的。

因此,对于if (a + 4 > 5)一条指令将加载a到寄存器中,另一条指令将添加4,另一条指令将与 进行比较5。然后,指令将测试比较中的“条件代码”,并执行紧随其后的指令(执行“if主体”)或“跳转”到内存中几个(或几十个)指令之外的位置(跳过“主体” if) ”)。

那里有数字逻辑,但它处于较低级别,决定如何执行每个单独的指令。