如何用计算机的if,计算机如何仅使用1和0创建“if”语句

计算机通过执行简单的指令来理解和执行"if"或"while"语句。这些指令包括测试值并设置状态寄存器的位,以及根据这些位进行有条件跳转。例如,一个简单的"if"语句可能被编译成包含测试、跳转和存储指令的机器代码。早期程序员通过了解处理器的指令集来编写代码,并可能使用穿孔卡片或开关库输入指令。
摘要由CSDN通过智能技术生成

计算机如何理解它正在执行“if”或“while”语句?

简短的回答是计算机不知道是否或同时。

计算机执行一个接一个的简单指令。每条指令都位于特定地址。在指令列表中有向前和向后跳转的特殊“分支”(或“跳转”)指令。其中一些跳转指令取决于CPU中某些位的值。例如,通常有一点指示先前的计算是否为零。还有一些设置这些位的指令,以及只根据这些位的值有条件跳转的特殊跳转指令。

考虑以下代码:

if( a == 0 ){

b = 1;

}else{

b = 2;

}

这可能会被编译成机器代码,类似于下面组成的汇编代码(我正在简化它以解释如何编译if语句):

;;(address instruction params ;; comments)

10 TEST a ;; set the "ZERO" bit based on whether a is zero

20 JNZ 50 ;; if ZERO bit is *not* set, jump to 50, otherwise fall through to 30

30 STORE b, 1 ;; store 1 in b

40 JUMP 60 ;; jump over else branch

50 STORE b, 2 ;; store 2 in b

60

因此,机器知道如何测试值并设置status register中的位(即存储零位的位置)。并且它知道如何在指令流中有条件地向前和向后跳转(您可以猜测如何实现while循环:您进行测试并在指令列表中向后跳以进行循环)。我想你可以说机器内置了一种“if”,但它非常简单:它只能向前或向后跳跃。

您可能会发现研究instruction set等简单CPU的Atmel AVR可以提供信息,以了解CPU本身可以执行的操作。

早期的程序员是如何知道要输入的内容,只使用二进制文件?

我猜他们列出了处理器知道如何解释的所有指令。或者是instruction set manual。

顺便说一下,早期的程序员没有打字,他们在punch cards上输入代码,或者通过翻转交换机库。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值