MASM汇编语言程序设计.ppt_第1页
MASM汇编语言程序设计.ppt_第2页
MASM汇编语言程序设计.ppt_第3页
MASM汇编语言程序设计.ppt_第4页
MASM汇编语言程序设计.ppt_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

教学内容,本章以Microsoft公司的宏汇编程序MASM为背景,介绍面向80 x86的汇编语言程序设计方法。包括汇编语言源程序的格式、伪指令、宏指令以及顺序结构、分支结构、循环结构、过程调用等汇编语言程序设计方法。具体内容如下:1、汇编语言源程序的格式及汇编语言上机过程2、伪指令3、宏指令4、汇编语言程序设计的基本方法(包括顺序程序、分支程序、循环程序、子程序),学习要求,汇编语言程序设计是“微型计算机原理”课程非常重要的内容之一。通过本章学习,应该达到如下要求:1、熟练掌握汇编语言格式及调试方法。2、掌握子程序和宏指令的概念、定义及其调用方法。3、掌握DOS调用和BIOS调用的方法。4、熟练掌握顺序程序、分支程序、循环程序设计的基本方法和一般技巧。,第5章汇编语言程序设计,5.1汇编语言的基本概念5.2汇编语言源程序的格式5.3伪指令语句5.4宏指令语句5.5汇编语言程序的上机过程5.6汇编语言程序设计的基本方法,在学习了计算机和微处理器的组成以及指令系统后,就具备用汇编语言进行程序设计的能力了。汇编语言是一种面向机器的程序设计语言,其基本特征是用一组字母、数字和符号来代替二进制编码的机器指令和数据。,5.1汇编语言的基本概念,5.1汇编语言的基本概念,程序设计语言是专门为计算机编程所配置的语言。它们按照形式与功能的不同可分为三种,即机器语言、汇编语言和高级语言。1.机器语言机器语言(MachineLanguage)是由0和1二进制代码书写和存储的指令与数据。它的特点是能被机器直接识别与执行;程序所占内存空间较少。其缺点是难认、难记、难编、易错。,2.汇编语言汇编语言(AssemblyLanguage)使用指令的助记符、符号地址、标号等书写程序的语言,简称符号语言。它的特点是易读、易写、易记。其缺点是不能为机器所直接识别。3.高级语言高级语言(HighLevelLanguage)是脱离具体机器(即独立于机器)的通用语言,不依赖于特定计算机的结构与指令系统。,为什么要用汇编语言编写程序,凡是学过一种程序设计高级语言的人,都会有高级语言“易学易用”的感觉,这是因为高级语言的语句是面向数学语言和自然语言的,因此容易接受、掌握。相对来说汇编语言编制程序比高级语言要困难些。既然如此,为什么还要学习和使用汇编语言呢?主要有以下几点:汇编语言是机器语言的符号表示语言,因此,程序设计人员可以充分利用机器硬件的全部功能,发挥机器的长处。,现在的微机系统中,底层的一些功能仍然靠汇编语言程序来实现。例如机器的自检、系统初始化、实际的输入输出操作,至今仍然是用汇编语言编制的程序来完成。汇编语言程序的效率通常高于高级语言程序。所以在节省内存空间和提高程序运行速度的重要场合,如实时控制,常常使用汇编语言来编制的。鉴于以上理由,现在许多高级语言都设置有与汇编语言程序接口的功能,以便于提高高级语言程序的效率。,5.2汇编语言源程序的格式,例5.1要求将两个5字节十六进制数相加,可以编写出以下汇编语言源程序。,DATASEGMENT;定义数据段,DATA为段名DATA1DB0F8H,60H,0ACH,74H,3BH;给数赋初值DATA2DB0C1H,36H,9EH,0D5H,20HDATAENDS;数据段结束CODESEGMENT;定义代码段ASSUMECS:CODE,DS:DATA;用ASSUMW伪指令定义;各段寄存器的内容,START:MOVAX,DATA;将DS初始化为数据段MOVDS,AX;首地址的段值DATAMOVCX,5;循环次数送CXMOVSI,0;置SI初值为0CTCLOOPER:MOVAL,DATA2SIADCDATA1SI,AL;与被加数相加INCSIDECCXJNZLOOPERMOVAH,4CH;DOS功能调用语句,机器将结束INT21H;本程序运行,返回DOSCODEENDSENDSTART;源程序结束,STACKSEGMENTSTACKENDSDATASEGMENTDATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:CODEENDSENDSTART,例5-2编写一个两字相加的程序。DSEGSEGMENT;定义数据段DATA1DW1234H;定义被加数DATA2DW5678H;定义加数DSEGENDS;数据段结束ESEGSEGMENT;定义附加段SUMDW2DUP(?);定义存放结果区ESEGENDS;附加段结束CSEGSEGMENT;定义代码段;下面的语句说明程序中定义的各段分别用哪个段寄存器寻址ASSUMECS:CSEG,DS:DSEG,ES:ESEGSTART:MOVAX,DSEG;START为程序开始执行的启动标号MOVDS,AX;初始化DSMOVAX,ESEGMOVES,AX;初始化ESLEASI,SUM;存放结果的偏移地址送SIMOVAX,DATA1;取被加数ADDAX,DATA2;两数相加MOVES:SI,AX;和送附加段的SUM单元中HLTCSEGENDS;代码段结束ENDSTART;源程序结束,5.2.1分段结构由上面的例子可以看出,汇编语言源程序的结构是分段结构形式,一个汇编语言源程序由若干段(SEGMENT)组成,每个段以SEGMENT语句开始,以ENDS语句结束。整个源程序的结尾是END语句。这里所说的汇编语言源程序中的段与前面讨论的CPU管理的存储器的段,既有联系,又在概念上有所区别。我们已经知道,微处理器对存储器的管理是分段的,因此,在汇编语言程序中也要求分段组织指令、数据和堆栈,以便将源程序汇编成为目标程序后,可以分别装入存储器的相应段中。,段可以从性质上分为:数据段、代码段、堆栈段和附加段。代码段和数据段不可缺少,堆栈段和附加段可根据需要设置。在上面的简单源程序中只有两个逻辑段,一个逻辑段的名字是DATA,其中存放着与程序有关的数据,称为逻辑数据段;另一个逻辑段的名字是CODE,其中包含着程序的指令,称为逻辑代码段。每个段内均有若干行语句(STATEMENT),因此,可以说一个汇编源程序是由一行一行的语句组成的。,源程序的结构特点,(1)汇编语言程序通常由若干段组成,段由伪指令SEGMENT与ENDS定义,各段顺序任意,段的数目按需要确定,原则上不受限制。(2)段由若干

温馨提示

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

评论

0/150

提交评论