C语言程序设计课件第1章计算机组成与程序设计语言汇总
C语言程序设计 第一章 计算机组成与程序设计语言 内容提要 计算机组成及工作过程 机器语言程序设计 由低级语言到高级语言 C is the most beautiful language! C程序开发过程 计算机组成及工作过程 计算机的组成: 硬件系统+软件系统 计算机的作用:用来处理存储的数据,处理和存储是一个整体. “计算机之父”——冯·诺依曼的程序存储思想: 计算机应该采用二进制 操作指令也是一种信息 ,也用二进制数表示 程序和数据的存储形式可以完全相同 程序本身也可包含数据 关于二进制等进制问题 计算机硬件的组成 关于存储器 存储器的组成:由存储单元组成,每个单元1个字节(1B),1B=8bit,每个单元有一个地址。 存储单元中的内容与存储单元的地址是两个概念,其区别如同房间里的东西与房间号码。 存储器的大小指它有多少个字节,也就是有多少个不同的地址号,取决于地址总线的根数,n根地址总线,存储器容量为:2n 常用存储单位:1TB=210GB=220MB=230KB=240B 存储器按功能分为3大区域:程序存储区、数据存储区和栈 关于CPU CPU:Central Processor Unit,中央处理器,完成各种处理(运算+控制),是计算机最核心部件。 CPU中设寄存器的目的:存放数据或计算的中间结果,不通过地址总线和数据总线 ,处理速度快 。 寄存器有两种:通用寄存器和专用寄存器。 熟悉两个专用寄存器: (1)累加器A:与算术逻辑运算器ALU一起完成各种运算 (2)程序计数器PC:寄存指令的地址,CPU通过PC取来一条指令执行时,PC便“指向”下一条指令,即PC的值变为下一条将要执行的指令的地址。除非遇到转移指令或子程序调用指令,CPU都是通过PC顺序地提取指令。 机器内部执行程序的过程示例 程序是一组指令,指令联系着存储器和CPU,每条指令有操作码,有的指令有操作数,指令存储在程序存储区,操作数存储在数据存储区。 例:求和程序y=3+4所包含的指令如下: 机器语言程序设计 对计算机而言:它的各个硬件部分存在的意义和相互的联系通过指令来体现。 对程序设计而言:计算机就是指令系统。 用机器语言进行程序设计: 首先要熟悉计算机的指令系统,熟悉每一条指令的含义及用法。 设计算法,根据算法编写程序。 所编写的计算机程序体现为一系列指令的集合,每条指令的操作码和操作数都用二进制数表示。 用机器语言编写的源程序就是机器能识别并执行的目标程序。 一台模型机的指令系统 编程计算:y=ax2+bx+c 子程序调用中涉及的几个概念 入口地址:第一条指令在程序存储区中的地址。 中断:一个程序在执行过程中去执行另一个程序。 断口地址:程序中断时的下一条指令的地址。 保护现场:程序中断时,有些寄存器存放着中间结果,将寄存器中的中间结果放入某地(堆栈)暂存。 恢复现场 :子程序执行完毕,再将主程序的中间结果放回寄存器。 子程序调用过程 第1步:将主程序的断口地址压入堆栈保存。 第2步:将子程序的入口地址送入PC。 第3步:进入子程序后,首先保护主程序现场。 第4步:执行子程序。 第5步:子程序执行完毕,恢复主程序现场。 第6步:将主程序的断口地址从栈顶送回PC。 y=ax2+bx+c 方法一的清单 及执行过程见动态演示。 由低级语言到高级语言 机器语言:是第一代程序设计语言,是计算机硬件系统能识别和执行的唯一语言。 机器语言的3个局限性: (1)程序不容易读写,操作码和操作数都是二进制数 (2)对计算机硬件的依赖性很强,可移植性差 (3)指令功能简单,没有按照数据类型分类 由低级语言到高级语言 第一种高级程序设计语言:Fortran语言(1954年) 高级语言的发展: (1)从早期语言到结构化程序设计语言 (2)从面向过程到非过程化程序设计语言(面向对象) (3)发展趋势:面向应用 第一种结构化程序设计语言:Pascal语言(1970年) 高级语言的种类有数百种,比较熟悉的有: Fortran、Basic、Pascal、C、FoxBASE、FoxPro、Lisp、 Prolog 、C++、Java、C#等 由低级语言到高级语言 区分两组概念: (1)程序设计语言与程序(类似于汉语与文章的关系) 程序设计语言是进行程序设计的工具,是计算机全部指令的集合;而任何计算机程序都需要用程序设计语言来编写,是为实现某个算法从该语言中选择所需要指令组成的集合。 (2)源程序与目标程序: 源程序:程序员编写的程序 目标程序:计算机最终能识别并运行的程序(二进制) C is the most beautiful language! C 语言最早的原型是 ALGOL 60 1973 年,AT&T 贝尔实验