x86汇编语言:从实模式到保护模式(第2版)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.1 用电表示数字

电和数字有关系吗?原本是没有关系的,风马牛不相及。但是,要想发明电子计算机,我们必须让电和数字扯上关系。

如图2-1所示,这是两个用开关和导线组成的电路。在初中的时候我们都学过电路,所以,我相信你能够看懂这幅图的意思。线条表示导线。这里有两根导线,每根导线都连着一个开关。当开关断开时,没有电流通过导线;当开关闭合时,有电流通过导线。为了看的时候醒目,我们将有电流通过的导线画成黑色,将没有电流通过的导线画成灰色。

图2-1 用开关和导线组成的电路

在学这门课程之前,我要求你已经学过二进制,也知道如何用二进制来表示数字。二进制计数法采用0和1的组合来表示数字。0和1很适合用开关的闭合与断开,以及电流的有和无来体现。比如说,当开关断开时,导线上没有电流,表示0;当开关闭合时,导线上有电流,表示1。

现代的电子计算机用二进制来表示数字。这样做有一个好处,那就是,我们可以用一排导线来表示数字,如图2-2所示。如果我们依次记下每根导线的状态,没有电流通过记成0,有电流通过就记成1,就可以得到一个由0、1组成的二进制数。在这里,这个二进制数是01000100,换算成十进制就是68。

当然,如果你想用这排导线表示别的数字,只需要拨动开关,将它们设置成适当的状态就可以了。

图2-2 用一排导线上电流的有无来表示二进制数

在现实中,导线上有没有电,我们是看不见的。但是,如图2-3所示,我们可以在导线上安装灯泡。当导线上没有电流通过时,灯泡不发光,表示传送的是0;当导线上有电流通过时,灯泡发光,表示传送的是1。

我们把灯泡的状态记下来,组合成二进制数字,就知道这排导线上传输的数字是多少了。比如在这里,我们记下灯泡的状态是01000100,好,这就是它传输的二进制数字,换算成十进制,是68。

图2-3 用灯泡是否发光来判断导线上传送的是1还是0