南邮c语言程序设计课件第1章090909

上传人:子 文档编号:51687312 上传时间:2018-08-15 格式:PPT 页数:28 大小:827.50KB
返回 下载 相关 举报
南邮c语言程序设计课件第1章090909_第1页
第1页 / 共28页
南邮c语言程序设计课件第1章090909_第2页
第2页 / 共28页
南邮c语言程序设计课件第1章090909_第3页
第3页 / 共28页
南邮c语言程序设计课件第1章090909_第4页
第4页 / 共28页
南邮c语言程序设计课件第1章090909_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《南邮c语言程序设计课件第1章090909》由会员分享,可在线阅读,更多相关《南邮c语言程序设计课件第1章090909(28页珍藏版)》请在金锄头文库上搜索。

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

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

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

4、eDate9 9关于二进制等进制问题进 制每位 符号逢几 进一位 权n位数的 不同个 数例子(结果统一到十进制)十091010i10n341=3*102+4*101+1*100=34 1 二0122i2n101=1*22+0*21+1*20=5八0788i8n127=1*82+2*81+7*80=87十 六09 AF1616i16n31D=3*162+1*161+13*160= 797另:3位二进制数相当于1位八进制数: 101 011B=(53)8=53Q4位二进制数相当于1位十六进制数: 1101 1001B=(D9)16=D9H=d9HDateDate1010关于存储器n存储器的组成:由

5、存储单元组成,每个单元1个字节( 1B),1B=8bit,每个单元有一个地址。 n存储单元中的内容与存储单元的地址是两个概念,其 区别如同房间里的东西与房间号码。n存储器的大小指它有多少个字节,也就是有多少个不 同的地址号,取决于地址总线的根数,n根地址总线, 存储器容量为:2nn常用存储单位:1TB=210GB=220MB=230KB=240Bn存储器按功能分为3大区域:程序存储区、数据存储区 和栈 存放程序中的指令 存放程序中的数据 存取数据都在一端,无 需计算地址,速度快 DateDate1111关于CPUnCPU:Central Processor Unit,中央处理器,完成各 种处理

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

7、组指令,指令联系着存储器和CPU,每条指令 有操作码,有的指令有操作数,指令存储在程序存储 区,操作数存储在数据存储区。 n例:求和程序y=3+4所包含的指令如下:操作 码操作 数指令含义01H3000 H将地址为3000H的单元中的数据放入 累加器A 03H3001 H将地址为3001H单元中的数据与累加 器A中的数据相加,结果留在A 02H3002 H将累加器A中的数据存入地址为3002H 的单元 07H停机 动 态演示过 程DateDate1313机器语言程序设计n对计算机而言:它的各个硬件部分存在的意义和相互 的联系通过指令来体现。n对程序设计而言:计算机就是指令系统。n用机器语言进行

8、程序设计:首先要熟悉计算机的指令系统,熟悉每一条指令的含义及用 法。设计算法,根据算法编写程序。所编写的计算机程序体现为一系列指令的集合,每条指令的 操作码和操作数都用二进制数表示。用机器语言编写的源程序就是机器能识别并执行的目标程序 。DateDate1414一台模型机的指令系统 指令名称操作码|操作数说明取数 01H NA(N),将地址为N的单元的数据存入累加器A 存数02H N(N)A,将累加器A的数据存入地址为N的单元加法 03H N将地址为N的单元的数据和A中的相加,结果存入A 乘法 04H N将地址为N的单元的数据和A中的相乘,结果存入A比较05H NA(N) 比较两个数据(相减)

9、,结果存入寄存器F 转移 06H NPCN 用地址N更新程序计数器PC的值 停机 07H停机子程序 调用 08H N断口地址进栈 ,用地址N更新程序计数器PC的值 返回主程 序 09H断口地址出栈,用来更新程序计数器PC的值 压栈 0aH T寄存器T中的数据进栈 保存(T表示任意寄存器) 出栈 0bH N出栈,出栈数据进入寄存器T DateDate1515编程计算:y=ax2+bx+c 步骤方法一方法二(y=x(ax+b)+c)1取数a 取数a2计算a*x 计算a*x3 计算a*x*x 计算a*x+b4 计算b*x计算x*(a*x+b)5计算a*x*xb*x 计算x*(a*x+b) +c6 计

10、算a*x*xb*x+c(书中未讲,此方法无需调用子程序)说明:方法一的第4步,也需要用累加器A,而此刻A中 是第3步的结果。这时,只能将第4步定义为一个子程序 ,结果受主程序调用,因此以上步骤实质上变成:计算z=b*x(子程序)zz动 态演示过 程方 法 一动 态演示过 程方 法 二DateDate1616子程序调用中涉及的几个概念 n入口地址:第一条指令在程序存储区中的地址。n中断:一个程序在执行过程中去执行另一个程序。n断口地址:程序中断时的下一条指令的地址。 n保护现场:程序中断时,有些寄存器存放着中间结果 ,将寄存器中的中间结果放入某地(堆栈)暂存。n恢复现场 :子程序执行完毕,再将主

11、程序的中间结果 放回寄存器。DateDate1717子程序调用过程 n第1步:将主程序的断口地址压入堆栈保存。n第2步:将子程序的入口地址送入PC。n第3步:进入子程序后,首先保护主程序现场。 n第4步:执行子程序。n第5步:子程序执行完毕,恢复主程序现场。n第6步:将主程序的断口地址从栈顶送回PC。ny=ax2+bx+c 方法一的清单n及执行过程见动态演示。动 态演示过 程方 法 一DateDate1818由低级语言到高级语言n机器语言:是第一代程序设计语言,是计算机硬件系 统能识别和执行的唯一语言。n机器语言的3个局限性:(1)程序不容易读写,操作码和操作数都是二进制数(2)对计算机硬件的

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

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

14、程 序汇编编译DateDate2121C is the most beautiful language!nC 语言最早的原型是 ALGOL 60n1973 年,AT&T 贝尔实验室的 Dennis Ritchien(D.M.RITCHIE,被尊为“C语言之父”) 在 BCPL 和 B 语言的基础上设计出了一种新的语言C语言,开发 UNIX操作系统及其上的应用程序。n 1999 年,ANSI 和 ISO 通过了最新版本的 C 语言标 准C99,这是关于 C 语言的最新、最权威的定义。n选择学习C语言的理由:C语言不仅是面向过程的程序 设计语言中功能最强、效率最高的语言,更是面向对 象程序设计语言

15、C+、Java和C#的基础。DateDate2222C is the most beautiful language!nC语言具有很多优点:简洁紧凑、灵活方便 运算符丰富(34个)数据类型丰富 C是结构式语言,程序层次清晰 C语法限制不太严格,语法比较灵活。C语言允许直接访问物理地址,可直接对硬件进行操作 ,既 可以开发系统软件,又可以开发应用软件(中级语言)C语言程序生成代码质量高,程序执行效率高 C语言适用范围大,可移植性好,适合多种操作系统,多种 机型DateDate2323开 始 编 辑 编 译 连 接 执 行 有错? 结果正确? 结 束 有 源程序 file.c 目标程 序 file

16、.obj 库函数和 其它目标程序 可执行 目标程序 无 正确 不正确 C程序开发过程file.exe编辑程序代码的录入, 生成源程序*.c编译链接运行源程序目标程序可执行程序内容程序设计 语言代码机器语言代码机器语言代 码可执行?不可以不可以可以扩展名.c.obj.exe语法分析查错,翻译 生成目标程序*.obj与其它目标程序或库 链接装配,生成可执行 程序*.exeDateDate2424在VC+6.0下开发程序的过程nC程序的开发在特定的集成开发环境下进行 n本教材中所有的程序在VC+6.0下通过,并且课程配套 实验也要求在VC+6.0下nVC+6.0集成环境中提供了编辑器、编译器、链接器、 调试器等多种工具,使得程序员从源程序的编辑到最 后的运行均可在集成环境中完成n举例:一个C程序在VC+6.0下开发的全过

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号