版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言程序设计
2023/5/191第一章计算机组成与
程序设计语言主讲:计算机学院朱立华内容提要计算机组成及工作过程
机器语言程序设计由低级语言到高级语言Cisthemostbeautifullanguage!C程序开发过程2023/5/193计算机组成及工作过程
计算机的组成:硬件系统+软件系统
计算机的作用:用来处理存储的数据,处理和存储是一个整体.“计算机之父”——冯·诺依曼的程序存储思想:计算机应该采用二进制操作指令也是一种信息,也用二进制数表示程序和数据的存储形式可以完全相同程序本身也可包含数据物质基础加在硬件之上,控制硬件完成功能通过程序设计语言来开发软件2023/5/194关于二进制等进制问题进制每位符号逢几进一位权n位数的不同个数例子(结果统一到十进制)十0~91010i10n341=3*102+4*101+1*100=341二0~122i2n101=1*22+0*21+1*20=5八0~788i8n127=1*82+2*81+7*80=87十六0~9A~F1616i16n31D=3*162+1*161+13*160=797另:3位二进制数相当于1位八进制数:101011B=(53)8=53Q4位二进制数相当于1位十六进制数:11011001B=(D9)16=D9H=d9H2023/5/195控制总线CPU计算机硬件的组成运算器控制器存储器接口输入设备输出设备地址总线数据总线进行各种算术运算和逻辑运算
控制和指挥整个运算过程,使指令按要求一条一条执行。
存放程序指令及数据
输入指令代码和原始数据显示或打印计算结果处理2023/5/196关于存储器存储器的组成:由存储单元组成,每个单元1个字节(1B),1B=8bit,每个单元有一个地址。
存储单元中的内容与存储单元的地址是两个概念,其区别如同房间里的东西与房间号码。存储器的大小指它有多少个字节,也就是有多少个不同的地址号,取决于地址总线的根数,n根地址总线,存储器容量为:2n常用存储单位:1TB=210GB=220MB=230KB=240B存储器按功能分为3大区域:程序存储区、数据存储区和栈存放程序中的指令存放程序中的数据存取数据都在一端,无需计算地址,速度快
2023/5/197关于CPUCPU:CentralProcessorUnit,中央处理器,完成各种处理(运算+控制),是计算机最核心部件。CPU中设寄存器的目的:存放数据或计算的中间结果,不通过地址总线和数据总线,处理速度快。寄存器有两种:通用寄存器和专用寄存器。熟悉两个专用寄存器:(1)累加器A:与算术逻辑运算器ALU一起完成各种运算(2)程序计数器PC:寄存指令的地址,CPU通过PC取来一条指令执行时,PC便“指向”下一条指令,即PC的值变为下一条将要执行的指令的地址。除非遇到转移指令或子程序调用指令,CPU都是通过PC顺序地提取指令。是运算器的组成部分,暂存操作数及运算的中间结果
每一个都有特定的作用
2023/5/198机器内部执行程序的过程示例程序是一组指令,指令联系着存储器和CPU,每条指令有操作码,有的指令有操作数,指令存储在程序存储区,操作数存储在数据存储区。
例:求和程序y=3+4所包含的指令如下:操作码操作数指令含义01H3000H将地址为3000H的单元中的数据放入累加器A03H3001H将地址为3001H单元中的数据与累加器A中的数据相加,结果留在A02H3002H将累加器A中的数据存入地址为3002H的单元07H停机动态演示过程2023/5/199机器语言程序设计对计算机而言:它的各个硬件部分存在的意义和相互的联系通过指令来体现。对程序设计而言:计算机就是指令系统。用机器语言进行程序设计:首先要熟悉计算机的指令系统,熟悉每一条指令的含义及用法。设计算法,根据算法编写程序。所编写的计算机程序体现为一系列指令的集合,每条指令的操作码和操作数都用二进制数表示。用机器语言编写的源程序就是机器能识别并执行的目标程序。2023/5/1910一台模型机的指令系统指令名称操作码|操作数说明取数01HNA←(N),将地址为N的单元的数据存入累加器A存数02HN(N)←A,将累加器A的数据存入地址为N的单元加法03HN将地址为N的单元的数据和A中的相加,结果存入A乘法04HN将地址为N的单元的数据和A中的相乘,结果存入A比较05HNA-(N)比较两个数据(相减),结果存入寄存器F转移06HNPC←N用地址N更新程序计数器PC的值停机07H停机子程序调用08HN断口地址进栈,用地址N更新程序计数器PC的值返回主程序09H断口地址出栈,用来更新程序计数器PC的值压栈0aHT寄存器T中的数据进栈保存(T表示任意寄存器)出栈0bHN出栈,出栈数据进入寄存器T2023/5/1911编程计算: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*x+b*x计算x*(a*x+b)+c6计算a*x*x+b*x+c(书中未讲,此方法无需调用子程序)说明:方法一的第4步,也需要用累加器A,而此刻A中是第3步的结果。这时,只能将第4步定义为一个子程序,结果受主程序调用,因此以上步骤实质上变成:计算z=b*x(子程序)zz动态演示过程方法一动态演示过程方法二2023/5/1912子程序调用中涉及的几个概念
入口地址:第一条指令在程序存储区中的地址。中断:一个程序在执行过程中去执行另一个程序。断口地址:程序中断时的下一条指令的地址。保护现场:程序中断时,有些寄存器存放着中间结果,将寄存器中的中间结果放入某地(堆栈)暂存。恢复现场:子程序执行完毕,再将主程序的中间结果放回寄存器。2023/5/1913子程序调用过程
第1步:将主程序的断口地址压入堆栈保存。第2步:将子程序的入口地址送入PC。第3步:进入子程序后,首先保护主程序现场。
第4步:执行子程序。第5步:子程序执行完毕,恢复主程序现场。第6步:将主程序的断口地址从栈顶送回PC。y=ax2+bx+c
方法一的清单及执行过程见动态演示。动态演示过程方法一2023/5/1914由低级语言到高级语言机器语言:是第一代程序设计语言,是计算机硬件系统能识别和执行的唯一语言。机器语言的3个局限性:(1)程序不容易读写,操作码和操作数都是二进制数(2)对计算机硬件的依赖性很强,可移植性差(3)指令功能简单,没有按照数据类型分类改进:用助记符代替机器的数字指令,用符号地址表示存储单元的数字地址——汇编语言(第二代程序设计语言)改进:面向问题而非面向机器,与计算机硬件结构无关改进:提供丰富的数据类型,语句一般都采用自然语汇,一条语句往往相当于多条指令。
2023/5/1915由低仁级语加言到挽高级朱语言第一得种高鞋级程琴序设糖计语臭言:Fo南rt表ra绍n语言(1伏95比4年)高级地语言俩的发饼展:(1)从血早期义语言刮到结距构化证程序撇设计歼语言(2)从面何向过沈程到眼非过冶程化奔程序窃设计倾语言(面向剃对象村)(3)发牢展趋耽势:居面向疏应用第一榨种结抢构化假程序做设计指语言:Pa劳sc何al语言(1哥97捉0年)高级汤语言吐的种再类有忽数百凡种,引比较熟共悉的挑有:Fo虾rt程ra箩n、Ba允si棉c、Pa遣sc鸦al、C、Fo抛xB令AS龙E、Fo急xP私ro、Li周sp、Pr割ol辣og、C+泄+、Ja镜va、C#等20衬23屑/5偿/1谦816由低尊级语损言到传高级纺语言区分借两组谢概念挨:(1)程梅序设炉计语坛言与孩程序(类似杯于汉搜语与熊文章望的关愈系)程序含设计臂语言勿是进让行程贩序设逮计的仍工具塞,是步计算贷机全盆部指外令的厕集合踢;而饶任何影计算蓬机程阔序都希需要椅用程店序设泊计语攻言来缠编写鉴,是宰为实梦现某具个算岗法从店该语楚言中怖选择俊所需阀要指尝令组漠成的纪集合桃。(2)源曾程序赛与目隶标程接序:源程悲序:程序看员编培写的赚程序目标厅程序纤:计算态机最洁终能哭识别回并运烛行的忍程序(二进邀制)源程序目标程序用机苗器语旋言编气写用汇令编语暗言编焦写汇编程序用高巴级语疲言编孩写编译程序汇编编译20眨23宁/5厚/1丘817C减is骄t予he咳m遣os朱t确be册au恼ti挂fu久l尚la仪ng忧ua复ge拌!C语言掩最早冬的原卸型是AL婆GO轻L侧6019妄73年,AT者&T贝尔本实验压室的De宁nn陡is购R科it层ch债ie(D教.M伞.R哪IT掏CH持IE,被篇尊为哨“C语言奥之父”)在BC送PL和B语言捎的基腰础上号设计赏出了蓄一种未新的董语言——躲C语言刷,开处发UN股IX操作秋系统及其凭上的醋应用坐程序瞧。19急99年,AN睛SI和IS斑O通过浇了最迎新版耀本的C语言崭标准C9店9,这谨是关疯于C语言巴的最抽新、呢最权均威的野定义智。选择兵学习C语言杏的理枪由:C语言饭不仅蔬是面废向过敏程的刘程序妇设计熟语言定中功蜓能最驱强、驱效率繁最高影的语跟言,疏更是吐面向涌对象交程序将设计麻语言C+幻玉+、Ja猫va和C#的基起础。20紧23只/5为/1闯818C剪is肃t瞎he穷m构os陶t码be株au重ti摘fu悦l谨la捉ng售ua柿ge辨!C语言怎具有速很多倾优点隔:简洁抚紧凑吩、灵每活方屯便运算辰符丰衔富(34个)数据赤类型鸟丰富C是结炼构式偏语言霸,程筛序层昨次清芬晰C语法判限制何不太迅严格浸,语瓜法比尿较灵孤活。C语言辉允许绝直接秋访问型物理讲地址裙,可嫩直接鸟对硬虾件进背行操根作管,既筹可以吵开发腥系统肤软件始,又袋可以抄开发兴应用持软件(中庭级语吃言)C语言姿程序那生成飘代码沸质量证高,环程序符执行胞效率奏高C语言税适用议范围摸大,欲可移歌植性跃好,欣适合算多种典操作秩系统炒,多兆种机构型20歼23吨/5节/1恐819
开
始
编
辑
编
译
连
接
执
行
有错?
结果正确?
结
束
有
源程序
file.c
目标程序file.obj
库函数和其它目标程序
可执行目标程序
无
正确
不正确
C程序德开发绢过程fi么le排.e洪xe编辑程序喜代码生的录缺入,生成稻源程达序*.c编译链接运行源程序目标程序可执行程序内容程序设计语言代码机器语言代码机器语言代码可执行?不可以不可以可以扩展名.c.obj.exe语法析分析部查错租,翻煮译生成凤目标谋程序*.ob日j与其君它目叉标程射序或霉库链接鸡装配,生成逆可执麦行程序*.e妨xe20割23甩/5想/1堵820在VC逼++失6.0下开发侧程序阳的过蜡程C程序吸的开留发在歉特定女的集瞧成开作发环膜境下眯进行本教拒材中傍所有街的程团序在VC牧++淹6.萍0下通用过,圾并且食课程卧配套理实验竹也要个求在VC菠++赵6.名0下VC假++摸6.刮0集成街环境冈中提坑供了返编辑遍器、酸编译后器、此链接夏器、斥调试殊器等煤多种商工具奥,使葱得程阻序员莫从源捐程序脉的编掀辑到舟最后饭的运根行均喊可在慨集成布环境爬中完误成举例贴:一个C程序蔑在VC亩++杨6.阔0下开足发的办全过衡程(请邪任课虚教师罪在VC筝++踏6.确0现场肢演示呜一个燃程序献从编眠辑到吓运行照的全蓄过程冷)20华23灿/5砍/1盒821本章小结重点族掌握俱:冯器•诺权依曼难体系晃结构蛾的计阀算机程序冠存储慈思想的主晃要内李容五大肢部件题:运握算器魂、控豪制器茅、存磨储器康、输迅入设艺备、恶输出淋设备主要袍功能急:高测速运刺算、细记忆滋、控要制自思动执篮行、沾信息运交互存储石器的绒容量掉大小残、CP脚U中寄丝式存器秘的分彩类和之作用(A,PC)基本剩了解索:机捉器内傍部执哄行程拼序的夏过程需,子恩程序煌调用即的过莲程以条及其吊中的液几个反主要堪概念程序缓是一钻组指抽令,婆每条休指令崖有操硬作码滚,有欧的指质令有场操作唉数指令都
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度山西省高校教师资格证之高等教育法规自我检测试卷A卷附答案
- 2023年剧装道具相关工艺美术品资金筹措计划书
- 2019年度城市活力研究报告
- 生意转让合同协议
- 2024年个人租车业务协议范本
- 智慧体育馆信息化管理平台建设方案
- 二手房购买预定金协议范本2024
- 2024年商业股权转让协议格式
- 2024人力培训服务外包代理协议
- 文书模板-《惠农信息员实习合同》
- 马工程《公共财政概论》课后习题库(含)参考答案(可做期末复习和试卷)
- 助行器、轮助使用2016课件
- YY/T 1760-2021一次性使用腹膜透析引流器
- YY 9706.220-2021医用电气设备第2-20部分:婴儿转运培养箱的基本安全和基本性能专用要求
- GB/T 18371-2001连续玻璃纤维纱
- 一级建造师考试题库及答案(全国通用)
- 竣工工程销项工作计划表
- 高速公路施工全流程标准化手册
- 通力电梯技能培训教材系列:《KCE控制系统课程》
- 模板-侦查阶段第二次会见笔录
- 2023年惠州仲恺城市发展集团有限公司招聘笔试题库及答案解析
评论
0/150
提交评论