《C Primer Plus(第6版)中文版》一1.4 计算机能做什么

简介:

本节书摘来自异步社区《C Primer Plus(第6版)中文版》一书中的第1章,第1.4节,作者 傅道坤,更多章节内容可以访问云栖社区“异步社区”公众号查看。

1.4 计算机能做什么

在学习如何用C语言编程之前,最好先了解一下计算机的工作原理。这些知识有助于你理解用C语言编写程序和运行C程序时所发生的事情之间有什么联系。

现代的计算机由多种部件构成。中央处理单元(CPU)承担绝大部分的运算工作。随机存取内存(RAM)是存储程序和文件的工作区;而永久内存存储设备(过去一般指机械硬盘,现在还包括固态硬盘)即使在关闭计算机后,也不会丢失之前储存的程序和文件。另外,还有各种外围设备(如,键盘、鼠标、触摸屏、监视器)提供人与计算机之间的交互。CPU负责处理程序,接下来我们重点讨论它的工作原理。

CPU的工作非常简单,至少从以下简短的描述中看是这样。它从内存中获取并执行一条指令,然后再从内存中获取并执行下一条指令,诸如此类(一个吉赫兹的CPU一秒钟能重复这样的操作大约十亿次,因此,CPU能以惊人的速度从事枯燥的工作)。CPU有自己的小工作区——由若干个寄存器组成,每个寄存器都可以储存一个数字。一个寄存器储存下一条指令的内存地址,CPU使用该地址来获取和更新下一条指令。在获取指令后,CPU在另一个寄存器中储存该指令,并更新第1个寄存器储存下一条指令的地址。CPU能理解的指令有限(这些指令的集合叫作指令集)。而且,这些指令相当具体,其中的许多指令都是用于请求计算机把一个数字从一个位置移动到另一个位置。例如,从内存移动到寄存器。

下面介绍两个有趣的知识。其一,储存在计算机中的所有内容都是数字。计算机以数字形式储存数字和字符(如,在文本文档中使用的字母)。每个字符都有一个数字码。计算机载入寄存器的指令也以数字形式储存,指令集中的每条指令都有一个数字码。其二,计算机程序最终必须以数字指令码(即,机器语言)来表示。

简而言之,计算机的工作原理是:如果希望计算机做某些事,就必须为其提供特殊的指令列表(程序),确切地告诉计算机要做的事以及如何做。你必须用计算机能直接明白的语言(机器语言)创建程序。这是一项繁琐、乏味、费力的任务。计算机要完成诸如两数相加这样简单的事,就得分成类似以下几个步骤。

1.从内存位置2000上把一个数字拷贝到寄存器1。

2.从内存位置2004上把另一个数字拷贝到寄存器2。

3.把寄存器2中的内容与寄存器1中的内容相加,把结果储存在寄存器1中。

4.把寄存器1中的内容拷贝到内存位置2008。

而你要做的是,必须用数字码来表示以上的每个步骤!

如果以这种方式编写程序很合你的意,那不得不说抱歉,因为用机器语言编程的黄金时代已一去不复返。但是,如果你对有趣的事情比较感兴趣,不妨试试高级编程语言。

相关文章
|
存储 编译器 程序员
C Primer Plus第六版(中文版) 课后复习题1 1.12 复习题
1.对编程而言,可移植性意味着什么? 完美的可移植程序是,源代码不需要任何修改就能在不同计算机系统中成功编译的程序。
54 0
|
C语言
C Primer Plus第六版(中文版) 课后复习题2 9.10 复习题
C语言的基本模块是什么? c语言程序中的基本功能模块为“函数”。一个C语言程序可以由一个主函数和若干个函数构成;一个大的应用程序一般应该分为多个程序模块,每一个模块用来实现一个功能,而模块的功能是由函数完成的。
89 0
|
机器学习/深度学习 IDE Ubuntu
《C++ Primer中文版(第5版)》学习笔记与习题完整发布!
《C++ Primer中文版(第5版)》学习笔记与习题完整发布!
468 0
《C++ Primer中文版(第5版)》学习笔记与习题完整发布!
|
安全 Unix 程序员
一起读经典《C Primer Plus(第6版)中文版》
今天我们要读的是一本经久不衰的C语言畅销经典教程,自1984年第一版诞生以来,它持续畅销了34年,升级了6个版本,是程序员们学习C语言不可多得的良师益友,它就是《C Primer Plus(第6版)中文版》。
2544 0