每个存储单元通常存储一个 8 位二进制数,它称为字节。设置为“读”模式时,存储器检索保存在单元中的字节,并通过8 条数据传输线输出,如图7-3 所示。
设置为“写”模式时,存储器从数据传输线获取一个字节,并将其写入相应的单元,如图7-4 所示。
传输相同数据的一组信号线称为总线。用于传输地址的8 条信号线构成地址总线,用于在存储单元之间传输数据的另外8 条信号线构成数据总线。地址总线是单向的(仅用于接收数据),而数据总线是双向的(用于发送和接收数据)。
在所有计算机中,CPU 与RAM 无时无刻不在交换数据:CPU 不断从RAM 获取指令与数据,偶尔也会将输出与部分计算存储在RAM 中,如图7-5 所示。
CPU
CPU 包括若干称为寄存器的内部存储单元,它能对存储在这些寄存器中的数字执行简单的数学运算,也能在RAM 与寄存器之间传输数据。可以指示CPU 执行以下典型的操作:
◎ 将数据从存储位置 220 复制到寄存器 3;
◎ 将寄存器 3 与寄存器 1 中的数字相加。
CPU 可以执行的所有操作的集合称为指令集,指令集中的每项操作被分配一个数字。计算机代码本质上是表示CPU 操作的数字序列,这些操作以数字的形式存储在RAM 中。输入/ 输出数据、部分计算以及计算机代码都存储在RAM 中。
通过在RAM 中包含重写部分代码的指令,代码甚至可以对自身修改,这是计算机病毒逃避反病毒软件检测的惯用手法。与之类似,生物病毒通过改变自身的DNA以躲避宿主免疫系统的打击。
图7-6 取自Intel 4004 操作手册,显示了部分CPU 指令映射为数字的方法。随着制造工艺的发展,CPU 支持的操作越来越多。现代CPU 的指令集极为庞大,但最重要的指令在几十年前就已存在。