《MASM汇编语言程序设计.ppt》由会员分享,可在线阅读,更多相关《MASM汇编语言程序设计.ppt(14页珍藏版)》请在三一办公上搜索。
1、教学内容,本章以Microsoft公司的宏汇编程序MASM为背景,介绍面向80 x86的汇编语言程序设计方法。包括汇编语言源程序的格式、伪指令、宏指令以及顺序结构、分支结构、循环结构、过程调用等汇编语言程序设计方法。具体内容如下:1、汇编语言源程序的格式及汇编语言上机过程2、伪指令3、宏指令4、汇编语言程序设计的基本方法(包括顺序程序、分支程序、循环程序、子程序),学习要求,汇编语言程序设计是“微型计算机原理”课程非常重要的内容之一。通过本章学习,应该达到如下要求:1、熟练掌握汇编语言格式及调试方法。2、掌握子程序和宏指令的概念、定义及其调用方法。3、掌握DOS调用和BIOS调用的方法。4、熟
2、练掌握顺序程序、分支程序、循环程序设计的基本方法 和一般技巧。,第5章 汇编语言程序设计,5.1 汇编语言的基本概念5.2 汇编语言源程序的格式 5.3 伪指令语句 5.4 宏指令语句 5.5 汇编语言程序的上机过程 5.6 汇编语言程序设计的基本方法,在学习了计算机和微处理器的组成以及指令系统后,就具备用汇编语言进行程序设计的能力了。汇编语言是一种面向机器的程序设计语言,其基本特征是用一组字母、数字和符号来代替二进制编码的机器指令和数据。,5.1 汇编语言的基本概念,5.1 汇编语言的基本概念,程序设计语言是专门为计算机编程所配置的语言。它们按照形式与功能的不同可分为三种,即机器语言、汇编语
3、言和高级语言。1.机器语言机器语言(Machine Language)是由0和1二进制代码书写和存储的指令与数据。它的特点是能被机器直接识别与执行;程序所占内存空间较少。其缺点是难认、难记、难编、易错。,2.汇编语言汇编语言(Assembly Language)使用指令的助记符、符号地址、标号等书写程序的语言,简称符号语言。它的特点是易读、易写、易记。其缺点是不能为机器所直接识别。3.高级语言高级语言(High Level Language)是脱离具体机器(即独立于机器)的通用语言,不依赖于特定计算机的结构与指令系统。,为什么要用汇编语言编写程序,凡是学过一种程序设计高级语言的人,都会有高级语
4、言“易学易用”的感觉,这是因为高级语言的语句是面向数学语言和自然语言的,因此容易接受、掌握。相对来说汇编语言编制程序比高级语言要困难些。既然如此,为什么还要学习和使用汇编语言呢?主要有以下几点:汇编语言是机器语言的符号表示语言,因此,程序设计人员可以充分利用机器硬件的全部功能,发挥机器的长处。,现在的微机系统中,底层的一些功能仍然靠汇编语言程序来实现。例如机器的自检、系统初始化、实际的输入输出操作,至今仍然是用汇编语言编制的程序来完成。汇编语言程序的效率通常高于高级语言程序。所以在节省内存空间和提高程序运行速度的重要场合,如实时控制,常常使用汇编语言来编制的。鉴于以上理由,现在许多高级语言都设
5、置有与汇编语言程序接口的功能,以便于提高高级语言程序的效率。,5.2 汇编语言源程序的格式,例5.1 要求将两个5字节十六进制数相加,可以编写出以下汇编语言源程序。,DATASEGMENT;定义数据段,DATA为段名 DATA1 DB 0F8H,60H,0ACH,74H,3BH;给数赋初值 DATA2 DB 0C1H,36H,9EH,0D5H,20H DATAENDS;数据段结束 CODE SEGMENT;定义代码段 ASSUME CS:CODE,DS:DATA;用ASSUMW伪指令定义;各段寄存器的内容,START:MOV AX,DATA;将DS初始化为数据段 MOV DS,AX;首地址的段
6、值DATA MOV CX,5;循环次数送CX MOV SI,0;置SI初值为0 CTC LOOPER:MOV AL,DATA2SI ADC DATA1SI,AL;与被加数相加INC SI DEC CX JNZ LOOPER MOV AH,4CH;DOS功能调用语句,机器将结束 INT 21H;本程序运行,返回DOSCODE ENDS END START;源程序结束,STACK SEGMENT STACK ENDS DATA SEGMENT DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACKSTART:CODE ENDS END START
7、,例5-2 编写一个两字相加的程序。DSEG SEGMENT;定义数据段DATA1 DW 1234H;定义被加数DATA2 DW 5678H;定义加数DSEG ENDS;数据段结束ESEG SEGMENT;定义附加段SUM DW 2 DUP(?);定义存放结果区ESEG ENDS;附加段结束CSEG SEGMENT;定义代码段;下面的语句说明程序中定义的各段分别用哪个段寄存器寻址 ASSUME CS:CSEG,DS:DSEG,ES:ESEGSTART:MOV AX,DSEG;START为程序开始执行的启动标号 MOV DS,AX;初始化DS MOV AX,ESEG MOV ES,AX;初始化E
8、S LEA SI,SUM;存放结果的偏移地址送SI MOV AX,DATA1;取被加数 ADD AX,DATA2;两数相加 MOV ES:SI,AX;和送附加段的SUM单元中 HLTCSEG ENDS;代码段结束 END START;源程序结束,5.2.1 分段结构 由上面的例子可以看出,汇编语言源程序的结构是分段结构形式,一个汇编语言源程序由若干段(SEGMENT)组成,每个段以SEGMENT语句开始,以ENDS语句结束。整个源程序的结尾是END语句。这里所说的汇编语言源程序中的段与前面讨论的CPU管理的存储器的段,既有联系,又在概念上有所区别。我们已经知道,微处理器对存储器的管理是分段的,
9、因此,在汇编语言程序中也要求分段组织指令、数据和堆栈,以便将源程序汇编成为目标程序后,可以分别装入存储器的相应段中。,段可以从性质上分为:数据段、代码段、堆栈段和附加段。代码段和数据段不可缺少,堆栈段和附加段可根据需要设置。在上面的简单源程序中只有两个逻辑段,一个逻辑段的名字是DATA,其中存放着与程序有关的数据,称为逻辑数据段;另一个逻辑段的名字是CODE,其中包含着程序的指令,称为逻辑代码段。每个段内均有若干行语句(STATEMENT),因此,可以说一个汇编源程序是由一行一行的语句组成的。,源程序的结构特点,(1)汇编语言程序通常由若干段组成,段由伪指令SEGMENT与ENDS定义,各段顺序任意,段的数目按需要确定,原则上不受限制。(2)段由若干语句组成,语句以指令为主体而构成。一条语句写在一行上,书写时语句的各部分应尽量对齐(3)汇编语言程序中至少要有一个启动标号,作为程序开始执行时目标代码的入口地址。启动标号常用START、BEGIN、MAIN等命名。(4)为增加程序的可读性,可在汇编语言语句“;”后加上注释。,
链接地址:https://www.31ppt.com/p-6511615.html