版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第七讲
程序设计语言简介熊瑞勤北京大学信息科学技术学院2014年11月什么是程序?按照一定顺序排列的一组指令什么是程序设计语言?1.进行程序设计所使用的语言2.规定了人们描述/编制程序所使用的规范和方法程序设计语言的演化历史机器语言汇编语言高级语言程序设计语言的演化历史机器语言机器语言计算机指令系统任何一台计算机在硬件层上都有自己的指令系统包含一组可被计算机直接理解和执行的机器指令直接使用机器指令进行程序设计的语言,
称为“机器语言”Intel80386机器指令示例01000000把一个寄存器(EAX)的值加1100010110000010100000000011110011000111110101101从某个内存单元取出数据,装入EAX寄存器机器语言的缺点难以阅读和理解!机器语言的缺点使得程序设计工作更加烦琐和容易出错要检查和发现程序中的错误非常困难程序的开发和维护效率非常低机器语言汇编语言汇编语言的基本思想反思:对于机器语言所使用的二进制编码,
由于它们与人类所熟悉的概念之间没有任何直观的联系,因此,不会对程序设计者的编程思维产生帮助变革:采用具有直观含义的符号来编写程序汇编语言的基本特点提供了一组具有直观含义的“汇编指令”汇编指令与机器指令之间一一对应操作和操作数
采用具有直观含义的符号表示MOV ERROR,0MOV ECX,EAXCMP ECX,0JMP FAILCALL FACT汇编语言的基本特点采用汇编语言编写的程序
计算机不能直接执行输入:汇编语言程序输出:机器语言程序汇编器程序
和
数据
的
相对性对于汇编器而言,其输入数据是汇编语言程序汇编语言程序被作为数据(一串字符)进行加工其输出数据是机器语言程序机器语言程序被作为数据(一串二进制数字)输出输入:汇编语言程序输出:机器语言程序汇编器不同类型的指令存储访问指令算术运算指令逻辑运算指令条件判断与分支转移指令输出输出指令其它指令存储访问指令负责在内存与寄存器之间、寄存器与寄存器之间移动数据指令 目的操作数,
源操作数mov
eax, dwordptr[7C8836CCh]
mov
dwordptr[7C8836CCh], eax
mov
ebx, eax
mov
ebx, 0
mov
dwordptr[ebp-18h], 0
算术运算指令指示ALU进行相应的算术运算(加减乘除)指令 目的操作数,
源操作数add
eax, ebxsub
eax, ebx
mul
ebx, eax
div
eax, ebx
inc
eax,dec
eax,逻辑运算指令指示ALU进行相应的逻辑运算二进制数的按位运算:与、或、非、异或指令 目的操作数,
源操作数and
eax, ebxor
eax, ebx
not
ebx, eaxxor
eax, ebx
条件判断与分支转移指令#include<stdio.h> //我们的程序必须引用的一个头文件intmain() //主函数{
intage; //定义一个记录年龄的变量
printf(“Pleaseinputyourage:\n”); //1.提示输入你的年龄
scanf("%d",&age); //2.把输入值保存在变量中
if(age>=18) //3.判断是否为成年人
printf("Youareanadult.e!\n"); //3.1.成年人可以进入
else //3.2.非成年人不能进网吧
printf("Youarenotanadult,youcan'tstayintheinternetbar.\n");}条件判断与分支转移指令条件判断判断一个操作数是否等于/不等于0,大于/等于或小于另一个数等分支转移条件判断的结果(真或假),被用作分支转移指令的条件,确定后续程序的执行方向指令地址指令 操作数7C81100ECMPEAX,103//比较EAX和1037C811013JE7C811030//如果相等,指令跳转7C811015TESTEAX,EAX//比较EAX是否为零,为负或为正7C811017JL7C8110A9//如果EAX为负,指令跳转7C811019JMP7C8110C9//指令无条件跳转7C81101BHLT
汇编语言程序示例1计算表达式的值:
135+22-1MOVAX,135MOVBX,22ADDAX,BXSUBAX,1HLTAX,BX:CPU中的通用寄存器汇编语言程序示例2计算1到100的累加和MOVAX,1MOVBX,2calc:CMPBX,101JEstopADDAX,BXINCBXJMPcalcstop:HLT汇编语言的缺点抽象层次太低基本描述单位仍然是计算机指令与人们描述计算过程所需要的抽象性之间的差距太大与计算机的硬件结构和指令系统联系过于紧密程序的可移植性差:针对一种指令系统编写的汇编语言程序,不能在另一种具有不同指令系统的计算机上运行汇编语言高级语言机器语言高级语言的基本特点在对计算过程的描述方面,
完全脱离了简单的机器指令方式采用类似于数学公式的方式描述计算过程用更高级的流程控制结构取代简单的指令跳转引入了变量的概念高级语言中的变量什么是变量?一种存放数据的容器高级语言中的变量变量是如何实现的?
一个变量
对应于
存储器中的若干连续字节高级语言中的变量每个变量都有一个字符串形式的名字Xlenmaxnum高级语言中的变量变量的优点?编程人员不需要关心变量的具体存放位置变量的名字可以帮助人们直观的理解变量所代表的物理含义在程序中,通过变量的名字就可以实现对变量中数据的读和写高级语言中的表达式用于描述计算过程的结构类似于数学中的代数运算公式
(x+y+z)*8/a高级语言中的语句高级语言中的基本动作单位不同类型的语句用于实现不同的功能赋值语句功能:把一个表达式的值赋给特定的变量X=100; Y=2*SIN(1.047);Z=X*Y;高级语言的执行方式不能直接在计算机上执行需要将其转换成机器语言程序两种基本的转换方式编译方式在程序执行前,一次性的将其转化为机器语言程序解释方式在程序执行时,即时的将当前需要执行的语句转化为机器语言高级语言第一个高级程序语言是FORTRAN
语言由IBM公司在五十年代开发出来的高级语言的开发成功是软件技术发展的一个重要里程碑高级语言不但是程序开发的工具,也成为一种在人与人之间,在不同的计算机之间交流的工具。出现了很多种不同类型的高级程序语言FORTRAN、PASCAL、C/C++COBOL、BASIC、ADA、JAVA、JavaScript……FormulaTranslatorC语言C是由美国贝尔实验室的DennisRetchie在1972年设计并实现,其目的是想成为一种编制“系统程序”的工具语言。Retchie等人首先用自己发明的C语言编写了UNIX操作系统;以后C语言逐步发展成为开发系统软件的主要语言。许多经典的软件系统(例如,计算机辅助设计软件AUTOCAD,数学软件系统Mathematica等),以及许多语言的编译系统本身就是用C
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 铸造碳化钨熔炼破碎工安全生产意识水平考核试卷含答案
- 在线学习服务师岗前风险评估考核试卷含答案
- 实验小学体育馆项目施工组织设计
- 2025年人工智能与劳动力发展报告
- 河北省廊坊市等2地2024-2025学年高一年级下册7月期末生物试题(解析版)
- 公差调整对成品率影响研究
- 解析化学反应速率
- 揭秘诗歌魅力
- 揭秘几何之魅
- 部编人教版六年级语文上册第二单元教案
- 河道消防应急预案
- 员工离职与法律风险防范
- 2025-2026学年北京版四年级数学上册期中素养综合测试卷(试题)(含答案)
- 期中家长会课件:见证成长 英你精彩(英语科目)
- 德国宝马品牌介绍
- 应聘地铁站务员考试题库及答案
- 钢结构工期延误应对方案
- 2025初中英语词汇3500词汇表
- 国家科技进步奖申请方法
- 腰肌劳损图文配合课件
- 反洗钱专业知识培训课件
评论
0/150
提交评论