版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、高级语言程序设计 2022-4-292第一章 计算机组成与程序设计语言主讲主讲: : 计算机学院计算机学院 李超李超n计算机组成及工作过程 n机器语言程序设计n由低级语言到高级语言nC is the most beautiful language!nC程序开发过程n计算工具计算工具: :n石器时代石器时代: :石头、手指、绳子石头、手指、绳子n铜器时代铜器时代: :算筹商周时代)、格子西方)算筹商周时代)、格子西方) n铁器时代铁器时代: :算盘算盘 n计算机计算机:(comput+er):(comput+er):用于计算的机器用于计算的机器, ,用来处理存储用来处理存储的数据的数据, ,处理
2、和存储是一个整体处理和存储是一个整体. .n计算机的组成计算机的组成: : 硬件系统硬件系统+ +软件系统软件系统 物质基础物质基础加在硬件之上加在硬件之上, ,控制控制硬件完成功能硬件完成功能通过程序设计语通过程序设计语言来开发软件言来开发软件n“计算机之父计算机之父”冯冯诺依曼的程序存储思诺依曼的程序存储思想想: :n计算机应该采用二进制计算机应该采用二进制 n操作指令也是一种信息操作指令也是一种信息 , ,也用二进制数表示也用二进制数表示n程序和数据的存储形式可程序和数据的存储形式可以完全相同以完全相同 n程序本身也可包含数据程序本身也可包含数据n1946.2.14 ENIAC(1946
3、.2.14 ENIAC(埃尼阿克埃尼阿克) )n现在保存在宾夕法尼亚大学现在保存在宾夕法尼亚大学n这台机器名为这台机器名为“电子数值积分电子数值积分和计算机和计算机”(”(简称埃尼阿克,简称埃尼阿克,完全是一个庞然大物,占地面完全是一个庞然大物,占地面积达积达170m2170m2,质量达,质量达30t30t,耗电,耗电量也很惊人,功率为量也很惊人,功率为150kW150kW,共使用了近两万个电子管,在共使用了近两万个电子管,在工作时这些管子看上去活像两工作时这些管子看上去活像两万只点着的灯泡。万只点着的灯泡。n埃尼阿克主要用来进行弹道计埃尼阿克主要用来进行弹道计算的数值分析算的数值分析 n图灵
4、机图灵机: :计算机科学之父、人计算机科学之父、人工智能之父工智能之父,”,”图灵奖图灵奖”n德国人德国人Conran EuseConran Euse代号为代号为“Z“Z的计算机的计算机n哈佛,哈佛,IBMIBM的的MarkMark系列大型电系列大型电子计算机子计算机n真正的第一台计算机是上面三真正的第一台计算机是上面三台中之一台中之一, ,无从考证无从考证控制总线控制总线CPUCPU计算机硬件的组成运算器运算器控制器控制器存储器存储器接口接口输入设备输入设备输出设备输出设备地址总线地址总线数据总线数据总线进行各种算术运算和逻辑运算进行各种算术运算和逻辑运算 控制和指挥整个运算过程,使控制和指
5、挥整个运算过程,使指令按要求一条一条执行。指令按要求一条一条执行。 存放程序指存放程序指令及数据令及数据 输入指令代码输入指令代码和原始数据和原始数据 显示或打印显示或打印计算结果计算结果 处处置置 关于二进制问题n“世界上有种人,一种人懂二进制,另一种人世界上有种人,一种人懂二进制,另一种人不懂不懂”n这里的是一个二进制数这里的是一个二进制数, ,就是十进制的就是十进制的2 2关于二进制等进制问题进进制制每位每位符号符号逢几逢几进一进一位位权权n n位数的位数的不同个数不同个数例子例子( (结果统一到十进制结果统一到十进制) )十十090910101010i i1010n n341=3341
6、=3* *10102 2+4+4* *10101 1+1+1* *10100 0=341=341二二01012 22 2i i2 2n n101=1101=1* *2 22 2+0+0* *2 21 1+1+1* *2 20 0=5=5八八07078 88 8i i8 8n n127=1127=1* *8 82 2+2+2* *8 81 1+7+7* *8 80 0=87=87十十六六0909AFAF16161616i i1616n n31D=331D=3* *16162 2+1+1* *16161 1+13+13* *16160 0=797=797另另:3:3位二进制数相当于位二进制数相当于
7、1 1位八进制数位八进制数: 101 011B=(53): 101 011B=(53)8 8=53Q=53Q4 4位二进制数相当于位二进制数相当于1 1位十六进制数位十六进制数: 1101 1001B=(D9): 1101 1001B=(D9)1616=D9H=d9H=D9H=d9Hn存储器的组成:由存储单元组成,每个单元存储器的组成:由存储单元组成,每个单元1 1个字节个字节1B1B),),1B=8bit1B=8bit,每个单元有一个地址。,每个单元有一个地址。 n存储单元中的内容与存储单元的地址是两个概念,其存储单元中的内容与存储单元的地址是两个概念,其区别如同房间里的东西与房间号码。区别
8、如同房间里的东西与房间号码。n存储器的大小指它有多少个字节,也就是有多少个不存储器的大小指它有多少个字节,也就是有多少个不同的地址号,取决于地址总线的根数,同的地址号,取决于地址总线的根数,n n根地址总线,根地址总线,存储器容量为:存储器容量为:2n2nn常用存储单位:常用存储单位:1TB=210GB=220MB=230KB=240B1TB=210GB=220MB=230KB=240Bn存储器按功能分为存储器按功能分为3 3大区域:程序存储区、数据存储大区域:程序存储区、数据存储区和栈区和栈 存放程序中的指令 存放程序中的数据 存取数据都在一端,无需计算地址,速度快 nCPUCPU:Cent
9、ral Processor Unit,Central Processor Unit,中央处理器,完成各中央处理器,完成各种处理运算种处理运算+ +控制),是计算机最核心部件。控制),是计算机最核心部件。nCPUCPU中设寄存器的目的:存放数据或计算的中间结果,中设寄存器的目的:存放数据或计算的中间结果,不通过地址总线和数据总线不通过地址总线和数据总线 ,处理速度快,处理速度快 。n寄存器有两种:通用寄存器和专用寄存器。寄存器有两种:通用寄存器和专用寄存器。n熟悉两个专用寄存器:熟悉两个专用寄存器:n(1 1累加器累加器A A:与算术逻辑运算器:与算术逻辑运算器ALUALU一起完成各种一起完成各
10、种运算运算 n(2 2程序计数器程序计数器PCPC:寄存指令的地址,:寄存指令的地址,CPUCPU通过通过PCPC取取来一条指令执行时,来一条指令执行时,PCPC便便“指向下一条指令,即指向下一条指令,即PCPC的值变为下一条将要执行的指令的地址。除非遇到转的值变为下一条将要执行的指令的地址。除非遇到转移指令或子程序调用指令,移指令或子程序调用指令,CPUCPU都是通过都是通过PCPC顺序地提顺序地提取指令。取指令。 是运算器的组成部是运算器的组成部分,暂存操作数及分,暂存操作数及运算的中间结果运算的中间结果 每一个都有特定的作用每一个都有特定的作用 n程序是一组指令,指令联系着存储器和程序是
11、一组指令,指令联系着存储器和CPUCPU,每条指,每条指令有操作码,有的指令有操作数,指令存储在程序存令有操作码,有的指令有操作数,指令存储在程序存储区,操作数存储在数据存储区。储区,操作数存储在数据存储区。 n例:求和程序例:求和程序y=3+4y=3+4所包含的指令如下:所包含的指令如下:操作码操作码 操作数操作数指令含义指令含义01H3000H将地址为将地址为3000H的单元中的数据放入累加器的单元中的数据放入累加器A 03H3001H将地址为将地址为3001H单元中的数据与累加器单元中的数据与累加器A中的中的数据相加,结果留在数据相加,结果留在A 02H3002H将累加器将累加器A中的数
12、据存入地址为中的数据存入地址为3002H的单元的单元 07H停机停机 动动态态演示演示过过程程n对计算机而言:它的各个硬件部分存在的意义和相互对计算机而言:它的各个硬件部分存在的意义和相互的联系通过指令来体现。的联系通过指令来体现。n对程序设计而言:计算机就是指令系统。对程序设计而言:计算机就是指令系统。n用机器语言进行程序设计:用机器语言进行程序设计:n首先要熟悉计算机的指令系统,熟悉每一条指令的含首先要熟悉计算机的指令系统,熟悉每一条指令的含义及用法。义及用法。n设计算法,根据算法编写程序。设计算法,根据算法编写程序。n所编写的计算机程序体现为一系列指令的集合,每条所编写的计算机程序体现为
13、一系列指令的集合,每条指令的操作码和操作数都用二进制数表示。指令的操作码和操作数都用二进制数表示。n用机器语言编写的源程序就是机器能识别并执行的目用机器语言编写的源程序就是机器能识别并执行的目标程序。标程序。指令名称指令名称 操作码操作码|操作数操作数说明说明取数取数 01H NA(N),将地址为将地址为N的单元的数据存入累加器的单元的数据存入累加器A 存数存数02H N(N)A,将累加器将累加器A的数据存入地址为的数据存入地址为N的单元的单元加法加法 03H N将地址为将地址为N的单元的数据和的单元的数据和A中的相加,结果存入中的相加,结果存入A 乘法乘法 04H N将地址为将地址为N的单元
14、的数据和的单元的数据和A中的相乘,结果存入中的相乘,结果存入A比较比较05H NA(N) 比较两个数据(相减),结果存入寄存器比较两个数据(相减),结果存入寄存器F 转移转移 06H NPCN 用地址用地址N更新程序计数器更新程序计数器PC的值的值 停机停机 07H停机停机子程序调子程序调用用 08H N断口地址进栈,用地址断口地址进栈,用地址N更新程序计数器更新程序计数器PC的值的值 返回主程返回主程序序 09H断口地址出栈,用来更新程序计数器断口地址出栈,用来更新程序计数器PC的值的值 压栈压栈 0aH T寄存器寄存器T中的数据进栈保存(中的数据进栈保存(T表示任意寄存器表示任意寄存器)
15、出栈出栈 0bH N出栈,出栈数据进入寄存器出栈,出栈数据进入寄存器T 步骤步骤方法一方法一方法二方法二( (y=x(ax+b)+cy=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 计算计算a*x*xb*x+c(书中未讲,此方法无需调用子程序)书中未讲,此方法无需调用子程序)阐明:方法一的第阐明:方法一的第4步,也需要用累加器步,也需要用累加器A,而此刻,而此刻A中中是第是第3步的结果。这时,只能将第步的结果。这
16、时,只能将第4步定义为一个子程步定义为一个子程序,结果受主程序调用,因此以上步骤实质上变成:序,结果受主程序调用,因此以上步骤实质上变成:计算计算z=b*x(子程序子程序)zz动动态态演示演示过过程程方方法法一一动动态态演示演示过过程程方方法法二二n入口地址:第一条指令在程序存储区中的地址。入口地址:第一条指令在程序存储区中的地址。n中断:一个程序在执行过程中去执行另一个程序。中断:一个程序在执行过程中去执行另一个程序。n断口地址:程序中断时的下一条指令的地址。断口地址:程序中断时的下一条指令的地址。 n保护现场:程序中断时,有些寄存器存放着中间结果,保护现场:程序中断时,有些寄存器存放着中间
17、结果,将寄存器中的中间结果放入某地将寄存器中的中间结果放入某地( (堆栈堆栈) )暂存。暂存。n恢复现场恢复现场 :子程序执行完毕,再将主程序的中间结:子程序执行完毕,再将主程序的中间结果放回寄存器。果放回寄存器。n第第1 1步:将主程序的断口地址压入堆栈保存。步:将主程序的断口地址压入堆栈保存。n第第2 2步:将子程序的入口地址送入步:将子程序的入口地址送入PCPC。n第第3 3步:进入子程序后,首先保护主程序现场。步:进入子程序后,首先保护主程序现场。 n第第4 4步:执行子程序。步:执行子程序。n第第5 5步:子程序执行完毕,恢复主程序现场。步:子程序执行完毕,恢复主程序现场。n第第6
18、6步:将主程序的断口地址从栈顶送回步:将主程序的断口地址从栈顶送回PCPC。ny=ax2+bx+c y=ax2+bx+c 方法一的清单方法一的清单n及执行过程见动态演示。及执行过程见动态演示。动动态态演示演示过过程程方方法法一一n机器语言:是第一代程序设计语言,是计算机硬件系机器语言:是第一代程序设计语言,是计算机硬件系统能识别和执行的唯一语言。统能识别和执行的唯一语言。n机器语言的机器语言的3 3个局限性:个局限性:n(1 1程序不容易读写,操作码和操作数都是二进制程序不容易读写,操作码和操作数都是二进制数数n(2 2对计算机硬件的依赖性很强,可移植性差对计算机硬件的依赖性很强,可移植性差n
19、(3 3指令功能简单,没有按照数据类型分类指令功能简单,没有按照数据类型分类改良:用助记符代替机器的数字指令,用符号地址表示存储改良:用助记符代替机器的数字指令,用符号地址表示存储 单元的数字地址单元的数字地址汇编语言汇编语言( (第二代程序设计语言第二代程序设计语言) )改良:面向问题而非面向机器,与计算机硬件结构无关改良:面向问题而非面向机器,与计算机硬件结构无关改良:提供丰富的数据类型,语句一般都采用自然语汇,改良:提供丰富的数据类型,语句一般都采用自然语汇, 一条语句往往相当于多条指令。一条语句往往相当于多条指令。 n第一种高级程序设计语言:第一种高级程序设计语言:FortranFor
20、tran语言语言(1954(1954年年) )n高级语言的发展:高级语言的发展:n(1 1从早期语言到结构化程序设计语言从早期语言到结构化程序设计语言n(2 2从面向过程到非过程化程序设计语言从面向过程到非过程化程序设计语言( (面向对象)面向对象)n(3 3发展趋势:面向应用发展趋势:面向应用n第一种结构化程序设计语言:第一种结构化程序设计语言:PascalPascal语言语言(1970(1970年年) )n高级语言的种类有数百种,比较熟悉的有:高级语言的种类有数百种,比较熟悉的有:nFortranFortran、BasicBasic、PascalPascal、C C、FoxBASEFoxB
21、ASE、FoxProFoxPro、LispLisp、 Prolog Prolog 、C+C+、JavaJava、C#C#等等n区分两组概念:区分两组概念:n(1 1程序设计语言与程序程序设计语言与程序( (类似于汉语与文章的关系类似于汉语与文章的关系) )n程序设计语言是进行程序设计的工具,是计算机全部程序设计语言是进行程序设计的工具,是计算机全部指令的集合;而任何计算机程序都需要用程序设计语指令的集合;而任何计算机程序都需要用程序设计语言来编写,是为实现某个算法从该语言中选择所需要言来编写,是为实现某个算法从该语言中选择所需要指令组成的集合。指令组成的集合。 n(2 2源程序与目标程序:源程
22、序与目标程序:n源程序:程序员编写的程序源程序:程序员编写的程序n目标程序:计算机最终能识别并运行的程序目标程序:计算机最终能识别并运行的程序( (二进制二进制) ) 源源程程序序目目标标程程序序用机器语言编写用机器语言编写用汇编语言编写用汇编语言编写汇汇编编程程序序用高级语言编写用高级语言编写编编译译程程序序汇编汇编编译编译nC C 语言最早的原型是语言最早的原型是 ALGOL 60 ALGOL 60n1973 1973 年,年,AT&T AT&T 贝尔实验室的贝尔实验室的 Dennis Ritchie Dennis Ritchien(D.M.RITCHIE(D.M.RITC
23、HIE,被尊为,被尊为“C“C语言之父语言之父”) ”) 在在 BCPL BCPL 和和 B B 语言的基础上设计出了一种新的语言语言的基础上设计出了一种新的语言CC语言,语言,开发开发UNIXUNIX操作系统及其上的应用程序。操作系统及其上的应用程序。n 2019 2019 年,年,ANSI ANSI 和和 ISO ISO 通过了最新版本的通过了最新版本的 C C 语言语言标准标准C99C99,这是关于,这是关于 C C 语言的最新、最权威的定义。语言的最新、最权威的定义。n选择学习选择学习C C语言的理由:语言的理由:C C语言不仅是面向过程的程序语言不仅是面向过程的程序设计语言中功能最强
24、、效率最高的语言,更是面向对设计语言中功能最强、效率最高的语言,更是面向对象程序设计语言象程序设计语言C+C+、JavaJava和和C#C#的基础。的基础。nC C语言具有很多优点:语言具有很多优点:n简洁紧凑、灵活方便简洁紧凑、灵活方便 n运算符丰富运算符丰富3434个)个)n数据类型丰富数据类型丰富 nC C是结构式语言,程序层次清晰是结构式语言,程序层次清晰 nC C语法限制不太严格,语法比较灵活。语法限制不太严格,语法比较灵活。nC C语言允许直接访问物理地址,可直接对硬件进行操语言允许直接访问物理地址,可直接对硬件进行操作作 ,既可以开发系统软件,又可以开发应用软件,既可以开发系统软
25、件,又可以开发应用软件中级语言)中级语言)nC C语言程序生成代码质量高,程序执行效率高语言程序生成代码质量高,程序执行效率高 nC C语言适用范围大,可移植性好,适合多种操作系统,语言适用范围大,可移植性好,适合多种操作系统,多种机型多种机型 开 始 编 辑 编 译 连 接 执 行 有错? 结果正确? 结 束 有 源程序 file.c 目标程序file.obj 库函数和其它目标程序 可执行目标程序 无 正确 不正确 file.exe编辑编辑程序代码的录入程序代码的录入, ,生成源程序生成源程序* *.c.c编译编译链接链接运转运转源程序源程序目标程序目标程序可执行程序可执行程序内容内容程序设
26、计程序设计语言代码语言代码机器语言代码机器语言代码机器语言代机器语言代码码可执行?可执行?不可以不可以不可以不可以可以可以扩展名扩展名.c.c.obj.obj.exe.exe语法分析查错,翻译语法分析查错,翻译生成目标程序生成目标程序* *.obj.obj与其它目标程序或库与其它目标程序或库链接装配链接装配, ,生成可执行生成可执行程序程序* *.exe.exenC C程序的开发在特定的集成开发环境下进行程序的开发在特定的集成开发环境下进行 n本教材中所有的程序在本教材中所有的程序在VC+6.0VC+6.0下通过,并且课程配下通过,并且课程配套实验也要求在套实验也要求在VC+6.0VC+6.0
27、下下nVC+6.0VC+6.0集成环境中提供了编辑器、编译器、链接器、集成环境中提供了编辑器、编译器、链接器、调试器等多种工具,使得程序员从源程序的编辑到最调试器等多种工具,使得程序员从源程序的编辑到最后的运行均可在集成环境中完成后的运行均可在集成环境中完成n举例:一个举例:一个C C程序在程序在VC+6.0VC+6.0下开发的全过程下开发的全过程n(请任课教师在(请任课教师在VC+6.0VC+6.0现场演示一个程序从编辑到现场演示一个程序从编辑到运行的全过程)运行的全过程)n重点掌握:冯重点掌握:冯诺依曼体系结构的计算机诺依曼体系结构的计算机n程序存储思想的主要内容程序存储思想的主要内容n五大部件:运算器
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 落实酒类商品进货查验和索证索票制度
- 2026年昆明市寻甸县公安局招聘警务辅助人员(37人)参考考试题库附答案解析
- 零售户经营安全培训课件
- 2026贵州贵阳市某事业单位劳务派遣工作人员招聘备考考试试题附答案解析
- 2026年上半年云南省发展和改革委员会所属事业单位招聘人员(4人)参考考试试题附答案解析
- 2026广西柳州事业单位招聘1111人参考考试试题附答案解析
- 2026年上半年黑龙江事业单位联考省教育厅招聘1人备考考试试题附答案解析
- 2026年沂南县部分事业单位公开招聘综合类岗位工作人员28人参考考试试题附答案解析
- 2026辽宁省文物考古研究院招聘3人参考考试题库附答案解析
- 安全生产保障金制度
- 小学六年级上册数学期末测试卷及参考答案(轻巧夺冠)
- DZ∕T 0130-2006 地质矿产实验室测试质量管理规范(正式版)
- (高清版)JGJT 178-2009 补偿收缩混凝土应用技术规程
- 电梯日管控、周排查、月调度内容表格
- 黑龙江省中药饮片炮制规范及标准
- QC-提高卫生间防水一次验收合格率
- 江苏省徐州市2022-2023学年高一上学期期末抽测政治试题(原卷版)
- 地基处理施工中的安全风险与防范
- 食材配送服务方投标方案(技术标)
- 人教版六年级科学上期末测试题(2份)有答案
- 食品安全全球标准BRCGS第9版内部审核全套记录
评论
0/150
提交评论