C语言程序设计PPT课件 第1章_第1页
C语言程序设计PPT课件 第1章_第2页
C语言程序设计PPT课件 第1章_第3页
C语言程序设计PPT课件 第1章_第4页
C语言程序设计PPT课件 第1章_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2020/7/17,1,高级语言程序设计,第一章 计算机组成与程序设计语言,主讲: 计算机学院 朱立华,2020/7/17,3,内容提要,计算机组成及工作过程 机器语言程序设计 由低级语言到高级语言 C is the most beautiful language! C程序开发过程,2020/7/17,4,计算机及其组成,计算工具: 石器时代:石头、手指、绳子 铜器时代:算筹(商周时代)、格子(西方) 铁器时代:算盘 计算机:(comput+er):用于计算的机器,用来处理存储的数据,处理和存储是一个整体. 计算机的组成: 硬件系统+软件系统,物质基础,加在硬件之上,控制硬件完成功能,通过程序

2、设计语言来开发软件,2020/7/17,5,冯诺依曼的程序存储思想,“计算机之父”冯诺依曼的程序存储思想: 计算机应该采用二进制 操作指令也是一种信息 ,也用二进制数表示 程序和数据的存储形式可以完全相同 程序本身也可包含数据,2020/7/17,6,关于第一台计算机,1946.2.14 ENIAC(埃尼阿克) 现在保存在宾夕法尼亚大学 这台机器名为“电子数值积分和计算机”(简称埃尼阿克,完全是一个庞然大物,占地面积达170m2,质量达30t,耗电量也很惊人,功率为150kW,共使用了近两万个电子管,在工作时这些管子看上去活像两万只点着的灯泡。 埃尼阿克主要用来进行弹道计算的数值分析,2020

3、/7/17,7,其他版本的第一台计算机,图灵机:计算机科学之父、人工智能之父,”图灵奖” 德国人Conran Euse代号为“Z”的计算机 哈佛,IBM的Mark系列大型电子计算机 真正的第一台计算机是上面三台中之一,无从考证,2020/7/17,8,控制总线,CPU,计算机硬件的组成,运算器,控制器,存储器,接口,输入设备,输出设备,地址总线,数据总线,进行各种算术运算和逻辑运算,控制和指挥整个运算过程,使指令按要求一条一条执行。,存放程序指令及数据,输入指令代码和原始数据,显示或打印计算结果,处理,2020/7/17,9,关于二进制问题,“世界上有种人,一种人懂二进制,另一种人不懂”,这里

4、的是一个二进制数,就是十进制的2,2020/7/17,10,关于二进制等进制问题,2020/7/17,11,关于存储器,存储器的组成:由存储单元组成,每个单元1个字节(1B),1B=8bit,每个单元有一个地址。 存储单元中的内容与存储单元的地址是两个概念,其区别如同房间里的东西与房间号码。 存储器的大小指它有多少个字节,也就是有多少个不同的地址号,取决于地址总线的根数,n根地址总线,存储器容量为:2n 常用存储单位:1TB=210GB=220MB=230KB=240B 存储器按功能分为3大区域:程序存储区、数据存储区和栈,存放程序中的指令,存放程序中的数据,存取数据都在一端,无需计算地址,速

5、度快,2020/7/17,12,关于CPU,CPU:Central Processor Unit,中央处理器,完成各种处理(运算+控制),是计算机最核心部件。 CPU中设寄存器的目的:存放数据或计算的中间结果,不通过地址总线和数据总线 ,处理速度快 。 寄存器有两种:通用寄存器和专用寄存器。 熟悉两个专用寄存器: (1)累加器A:与算术逻辑运算器ALU一起完成各种运算 (2)程序计数器PC:寄存指令的地址,CPU通过PC取来一条指令执行时,PC便“指向”下一条指令,即PC的值变为下一条将要执行的指令的地址。除非遇到转移指令或子程序调用指令,CPU都是通过PC顺序地提取指令。,是运算器的组成部分

6、,暂存操作数及运算的中间结果,每一个都有特定的作用,2020/7/17,13,机器内部执行程序的过程示例,程序是一组指令,指令联系着存储器和CPU,每条指令有操作码,有的指令有操作数,指令存储在程序存储区,操作数存储在数据存储区。 例:求和程序y=3+4所包含的指令如下:,2020/7/17,14,机器语言程序设计,对计算机而言:它的各个硬件部分存在的意义和相互的联系通过指令来体现。 对程序设计而言:计算机就是指令系统。 用机器语言进行程序设计: 首先要熟悉计算机的指令系统,熟悉每一条指令的含义及用法。 设计算法,根据算法编写程序。 所编写的计算机程序体现为一系列指令的集合,每条指令的操作码和

7、操作数都用二进制数表示。 用机器语言编写的源程序就是机器能识别并执行的目标程序。,2020/7/17,15,一台模型机的指令系统,2020/7/17,16,编程计算:y=ax2+bx+c,说明:方法一的第4步,也需要用累加器A,而此刻A中是第3步的结果。这时,只能将第4步定义为一个子程序,结果受主程序调用,因此以上步骤实质上变成:,计算z=b*x(子程序),z,z,2020/7/17,17,子程序调用中涉及的几个概念,入口地址:第一条指令在程序存储区中的地址。 中断:一个程序在执行过程中去执行另一个程序。 断口地址:程序中断时的下一条指令的地址。 保护现场:程序中断时,有些寄存器存放着中间结果

8、,将寄存器中的中间结果放入某地(堆栈)暂存。 恢复现场 :子程序执行完毕,再将主程序的中间结果放回寄存器。,2020/7/17,18,子程序调用过程,第1步:将主程序的断口地址压入堆栈保存。 第2步:将子程序的入口地址送入PC。 第3步:进入子程序后,首先保护主程序现场。 第4步:执行子程序。 第5步:子程序执行完毕,恢复主程序现场。 第6步:将主程序的断口地址从栈顶送回PC。 y=ax2+bx+c 方法一的清单 及执行过程见动态演示。,2020/7/17,19,由低级语言到高级语言,机器语言:是第一代程序设计语言,是计算机硬件系统能识别和执行的唯一语言。 机器语言的3个局限性: (1)程序不

9、容易读写,操作码和操作数都是二进制数 (2)对计算机硬件的依赖性很强,可移植性差 (3)指令功能简单,没有按照数据类型分类,改进:用助记符代替机器的数字指令,用符号地址表示存储 单元的数字地址汇编语言(第二代程序设计语言),改进:面向问题而非面向机器,与计算机硬件结构无关,改进:提供丰富的数据类型,语句一般都采用自然语汇, 一条语句往往相当于多条指令。,2020/7/17,20,由低级语言到高级语言,第一种高级程序设计语言:Fortran语言(1954年) 高级语言的发展: (1)从早期语言到结构化程序设计语言 (2)从面向过程到非过程化程序设计语言(面向对象) (3)发展趋势:面向应用 第一

10、种结构化程序设计语言:Pascal语言(1970年) 高级语言的种类有数百种,比较熟悉的有: Fortran、Basic、Pascal、C、FoxBASE、FoxPro、Lisp、 Prolog 、C+、Java、C#等,2020/7/17,21,由低级语言到高级语言,区分两组概念: (1)程序设计语言与程序(类似于汉语与文章的关系) 程序设计语言是进行程序设计的工具,是计算机全部指令的集合;而任何计算机程序都需要用程序设计语言来编写,是为实现某个算法从该语言中选择所需要指令组成的集合。 (2)源程序与目标程序: 源程序:程序员编写的程序 目标程序:计算机最终能识别并运行的程序(二进制),源

11、程 序,目 标 程 序,用机器语言编写,用汇编语言编写,汇 编 程 序,用高级语言编写,编 译 程 序,汇编,编译,2020/7/17,22,C is the most beautiful language!,C 语言最早的原型是 ALGOL 60 1973 年,AT&T 贝尔实验室的 Dennis Ritchie (D.M.RITCHIE,被尊为“C语言之父”) 在 BCPL 和 B 语言的基础上设计出了一种新的语言C语言,开发UNIX操作系统及其上的应用程序。 1999 年,ANSI 和 ISO 通过了最新版本的 C 语言标准C99,这是关于 C 语言的最新、最权威的定义。 选择学习C语言

12、的理由:C语言不仅是面向过程的程序设计语言中功能最强、效率最高的语言,更是面向对象程序设计语言C+、Java和C#的基础。,2020/7/17,23,C is the most beautiful language!,C语言具有很多优点: 简洁紧凑、灵活方便 运算符丰富(34个) 数据类型丰富 C是结构式语言,程序层次清晰 C语法限制不太严格,语法比较灵活。 C语言允许直接访问物理地址,可直接对硬件进行操作 ,既可以开发系统软件,又可以开发应用软件(中级语言) C语言程序生成代码质量高,程序执行效率高 C语言适用范围大,可移植性好,适合多种操作系统,多种机型,2020/7/17,24,C程序开

13、发过程,file.exe,编辑,程序代码的录入, 生成源程序*.c,编译,链接,运行,语法分析查错,翻译 生成目标程序*.obj,与其它目标程序或库 链接装配,生成可执行 程序*.exe,2020/7/17,25,在VC+6.0下开发程序的过程,C程序的开发在特定的集成开发环境下进行 本教材中所有的程序在VC+6.0下通过,并且课程配套实验也要求在VC+6.0下 VC+6.0集成环境中提供了编辑器、编译器、链接器、调试器等多种工具,使得程序员从源程序的编辑到最后的运行均可在集成环境中完成 举例:一个C程序在VC+6.0下开发的全过程 (请任课教师在VC+6.0现场演示一个程序从编辑到运行的全过

14、程),2020/7/17,26,本章小结,重点掌握:冯诺依曼体系结构的计算机 程序存储思想的主要内容 五大部件:运算器、控制器、存储器、输入设备、输出设备 主要功能:高速运算、记忆、控制自动执行、信息交互 存储器的容量大小、CPU中寄存器的分类和作用(A,PC) 基本了解:机器内部执行程序的过程,子程序调用的过程以及其中的几个主要概念 程序是一组指令,每条指令有操作码,有的指令有操作数 指令存储在程序存储区,操作数存储在数据存储区。 子程序调用过程中的概念:入口地址、中断、断口地址、保护现场、恢复现场,2020/7/17,27,本章小结,充分理解:程序设计语言与程序、源程序与目标程序的关系 程序设计语言是编写程序的工具,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论