背景知识:
现代的计算机由多种部件构成。
- 中央处理单元(CPU)承担绝大部分的运算工作。
- 随机存取内存(RAM)是存储程序和文件的工作区;
- 而永久内存存储设备(过去一般指机械硬盘,现在还包括固态硬盘)即使在关闭计算机后,也不会丢失之前储存的程序和文件。
- 另外,还有各种外围设备(如,键盘、鼠标、触摸屏、监视器)提供人与计算机之间的交互。
CPU负责处理程序,接下来我们重点讨论CPU的工作原理。
CPU工作原理:
CPU 的工作非常简单,至少从以下简短的描述中看是这样。
- 它从内存中获取并执行一条指令,
- 然后再从内存中获取并执行下一条指令,诸如此类(一个吉赫兹的CPU一秒钟能重复这样的操作大约十亿次,因此,CPU 能以惊人的速度从事枯燥的工作)。
- CPU 有自己的小工作区——由若干个寄存器组成,每个寄存器都可以储存一个数字。
- 一个寄存器储存下一条指令的内存地址,CPU 使用该地址来获取和更新下一条指令。
- 在获取指令后,CPU在另一个寄存器中储存该指令,并更新第1个寄存器储存下一条指令的地址。
- CPU能理解的指令有限(这些指令的集合叫作指令集)。
- 这些指令相当具体,其中的许多指令都是用于请求计算机把一个数字从一个位置移动到另一个位置。例如,从内存移动到寄存器。MoveTo
就为了引出以下知识:
1、储存在计算机中的所有内容都是数字。
计算机以数字形式储存数字和字符(如,在文本文档中使用的字母)。
每个字符都有一个数字码。
计算机载入寄存器的指令也以数字形式储存,指令集中的每条指令都有一个数字码。
额外话题:之前一篇文章,因为标题含有一切,所以不怎么引人注目。
《一切皆地址》
2、计算机程序最终必须以数字指令码(即:机器语言)来表示。
总结:
简而言之,计算机的工作原理是:
如果希望计算机做某些事,就必须为其提供特殊的指令列表(程序),确切地告诉计算机要做的事以及如何做。你必须用计算机能直接明白的语言(机器语言)创建程序。
这是一项繁琐、乏味、费力的任务。
计算机要完成诸如两数相加这样简单的事,就得分成类似以下几个步骤。
- 从内存位置2000上把一个数字拷贝到寄存器1。
- 从内存位置2004上把另一个数字拷贝到寄存器2。
- 把寄存器2中的内容与寄存器1中的内容相加,把结果储存在寄存器1中。
- 把寄存器1中的内容拷贝到内存位置2008。
而你要做的是,必须用数字码来表示以上的每个步骤!
如果以这种方式编写程序很合你的意,那不得不说抱歉,因为用机器语言编程的黄金时代已一去不复返。但是,如果你对有趣的事情比较感兴趣,不妨试试高级编程语言。
以上内容搬迁于《C Primer Plus 6.0》一书第一章第4小节:1.4 计算机能做什么?