C程序设计 - 创新方法 何勤 2010.7.3 - 图文 联系客服

发布时间 : 星期一 文章C程序设计 - 创新方法 何勤 2010.7.3 - 图文更新完毕开始阅读

编程的核心奥秘 何勤

R0香菇 R1菜心 厨具 R2香菇菜心 厨师 PC 3 厨房管理员 IR将R0和R1炒好倒入R2碟; 材料传送带

地址传送带

控制传送带

0 1 2 3 4 5 6 7 取地址5到R0碟 取地址6到R1碟; 将R0和R1炒好倒入R2碟; 送R2碟到地址7中; 香菇 菜心 图1.9

四.下面开始执行下一条指令的取指周期,类似于前一条指令的取指令阶段,在取指令周期完成后,理想厨房系统,处于如下图1.10状态:

理想厨房 自动冰箱

碟名 碟中物品 地址 冰箱格子中物品 R0香菇 R1菜心 厨具 R2香菇菜心 厨师 PC 4 厨房管理员 IR送R2碟到地址7中; 材料传送带

地址传送带

控制传送带

0 1 2 3 4 5 6 7 取地址5到R0碟 取地址6到R1碟; 将R0和R1炒好倒入R2碟; 送R2碟到地址7中; 香菇 菜心 图1.10

下面开始执行“送R2碟到地址7中”这条指令。厨房管理员分析指令存放碟中的加工步骤后,知道要将R2碟中的物品,送到冰箱地址为7的格子中去存放。于是,管理员向控制传送带上发一个“存”信号,然后马上将7这个数放到地址传送带上,最后将R2碟中的物品“香菇菜心”放到材料传送带上,送往冰箱。

冰箱收到“存”信号后,知道理想厨房要存放物品,然后,冰箱从地址传送带得到了7,于是自动冰箱(的机械手)在材料传送带旁,等待从理想厨房R2碟传来物品——“香菇菜心”,一旦到达,自动冰箱就将其取下,并将其存放到地址号为7的格子中。完成后系统状态如图1.11:

理想厨房 自动冰箱

碟名 碟中物品 地址 冰箱格子中物品

13

编程的核心奥秘 何勤

R0香菇 R1菜心 厨具 R2香菇菜心 厨师 PC 4 厨房管理员 IR送R2碟到地址7中; 材料传送带

地址传送带

控制传送带

0 1 2 3 4 5 6 7 取地址5中到R0碟 取地址6中到R1碟; 将R0和R1炒好倒入R2碟; 送R2碟到地址7中; 香菇 菜心 香菇菜心 图1.11 香菇菜心,终于大功告成了。

1.3 理想厨房系统与计算机系统术语对照表

理想厨房的工作原理,与计算机的工作原理是极为类似的。下面首先给出两个系统之间的术语对照表,见表1.1。

表1.1 术语对照表

理想厨房系统 电子数字计算机(简称计算机) 1.硬件设备

自动冰箱(包含多个大小相等的格子) 一个格子 材料传送带 地址传送带 控制信号传送带 理想厨房(包含以下设备) 厨师及炒菜设备 厨房管理员 通用临时存放碟 指令地址存放碟PC 指令存放碟IR 状态存放碟 专用加工容器 采购员及配菜员 传菜生 自动仓库 内存(又称为主存,包含很多大小相等的基本存储单元) 一个基本存储单元 数据总线 地址总线 控制总线 CPU(或称微处理器,包含以下部件) 算术逻辑单元ALU(又称为运算器) 控制单元(又称为控制器) 通用寄存器 指令地址寄存器(又称为程序计数器PC) 指令寄存器(又称为IR寄存器) 状态寄存器 专用寄存器 输入设备(键盘、鼠标、网卡、U盘等) 输出设备(显示器、打印机、网卡、U盘等) 外存(硬盘、U盘,同时也属于输入输出设备) 14

编程的核心奥秘 何勤

2.软硬件之间的接口(编写菜谱或程序的基本要素)

冰箱格子的地址(即编号) 内存中基本存储单元的地址(即编号) 厨师可做的各种炒菜的基本动作(蒸、炒、运算器可进行的各种基本运算(算术运算、炸、煮等) 逻辑运算等) 碟子的名称 理想厨房可以执行的所有各种加工动作(指令) 3.软件

特殊菜谱 加工步骤 原材料 炒好的菜 精确的普通菜谱 简要的普通菜谱 (机器语言形式的) 程序 (机器)指令 数据 信息(或称为结果) 高级语言程序(又称为源程序或源代码) 伪代码 4. 系统的使用者

编写特殊菜谱者 编写精确的普通菜谱者 理想厨房系统的大堂经理和顾客 用机器语言编程的程序员 用高级程序设计语言编程的程序员 计算机的用户 寄存器的编码或代号 该类型计算机的指令集

这么多的关于计算机系统的专业术语,只要通过在计算机系统上运行一个简短的程序,就可以把这些术语中的绝大多数都关联起来(参见1.6节)。如果没有对理想厨房工作原理的详细讲解,由于出现了太多新的专业术语和名词,人们决对很难在短时间内,全面把握和理解这个计算机系统的工作原理的(对于任何一个初学者,这都是一件极其困难的事)。

点评: 当在一个你不熟悉的领域中进行学习并遇到比较大的理解上的困难时,主动寻找一些你所熟悉的日常生活中的相类似的模型来帮助理解是极为重要的,即使这个理想模型在日常生活中有可能不存在。 1.4计算机与计算机系统:

计算机(系统)是一个通过顺序执行程序中的指令,把数据加工成信息的系统。

●计算机

计算机由硬件(中央处理单元、内存和三套总线)和软件(程序)组成。这是一个由数字逻辑电路构成的,以极快速度(接近光速)运行程序的,纯二进制的电子“世界”。

●计算机系统

计算机系统由硬件(中央处理单元、内存和三套总线)、软件(程序)和外围设备(输入输出设备和硬盘等外存)组成。

1.4.1计算机的硬件

15

编程的核心奥秘 何勤

!)计算机硬件主要由以下三个部件构成:中央处理单元(CPU)、内存、三套总线。 ....................

●内存(相当于自动冰箱):由极大量的大小相同的基本存储单元(→)组成(通常的个人计算机通常有几千万到上亿个这样的基本存储单元)。每个基本存储单元,具有一个唯一的顺序编号(即内存地址)。通常的现代计算机内存中的一个基本存储单元,可以存放一个字节(即8位)的二进制位串。内存负责临时保存正在执行(和将要执行)的程序、数据和信息。这些内容在内存中,全部都是以二进制形式存放的。

●三套总线(相当于三条传送带):负责中央处理单元( CPU)与内存之间的通信及数据(包括程序中的指令、数据和信息)传送。

●中央处理单元(相当于理想厨房):负责到内存中取(程序的)指令,并根据指令对数据进行运算处理以及进行相关的控制工作。中央处理单元中的主要部件有:控制器(相当于厨房管理员)、运算器(相当于厨师加炊具)和一些寄存器(相当于厨房中的碟子)。

1.4.2计算机的软件

构成计算机的部件中,还有一个无重量的、无体积的、不会损坏、可经常更换的,极为重要的软件部件(即命令计算机如何工作的信息流)——程序。程序是由一条条指令顺序组成的(可存放在内存和外存中)。

计算机的构成简图如图1.2所示:

中央处理单元(CPU ) 内存

寄存器名 寄存器中物品 地址 存储单元中存放程序或数据 R0 R1 R2 运算器 PC 控制器 IR 数据总线

地址总线

控制总线

000 001 010 011 100 101 110 111 图1.2计算机系统的构成简图

● 中央处理单元( CPU)执行指令的过程,完全是周期性的

控制器首先要根据PC寄存器中的值(这个值表示:将要执行的指令,位于内存的哪一个内存存储单元中),通过三套总线,到内存中去取这条指令。取到中央处理单元并把它放到指令寄存器之后(PC寄存器中的原来值,将会加上刚取到的这条指令的字节数,以便为取下一条指令做准备),控制器还要对该指令进行译码。然后根据此指令的指示,通过控制总线通知计算机的各部件,去做以下七类工作中的一种:

16