微机接口ppt课件第5章汇编语言程序设计.ppt
《微机接口ppt课件第5章汇编语言程序设计.ppt》由会员分享,可在线阅读,更多相关《微机接口ppt课件第5章汇编语言程序设计.ppt(76页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、微机原理与接口技术微机原理与接口技术作者:徐建平作者:徐建平 成贵学成贵学 第第5 5章章 汇编语言程序设计汇编语言程序设计 【本章内容提要本章内容提要】n掌握汇编语言程序的编辑、汇编、连接和调试掌握汇编语言程序的编辑、汇编、连接和调试n掌握汇编语言的概念、助记符和语句格式,以掌握汇编语言的概念、助记符和语句格式,以及常数、表达式、标号、变量和运算符的定义及常数、表达式、标号、变量和运算符的定义和用法和用法n掌握汇编语言的常用伪指令的格式和用法,以掌握汇编语言的常用伪指令的格式和用法,以及源程序的结构及源程序的结构n掌握汇编程序设计的基本方法掌握汇编程序设计的基本方法n掌握高级汇编程序设计方法
2、掌握高级汇编程序设计方法5.1 汇编语言程序的编辑、汇编语言程序的编辑、汇编、连接和调试汇编、连接和调试n5.1.1 源程序编辑器源程序编辑器EDITn5.1.2 汇编程序汇编程序MASM n5.1.3 连接程序连接程序LINK n5.1.4 程序的运行和调试程序的运行和调试5.2 5.2 汇编语言入门汇编语言入门 5.2.1 5.2.1 汇编语言概述汇编语言概述 n由于计算机只能识别和执行由二进制代码组由于计算机只能识别和执行由二进制代码组成的机器指令,而这种二进制机器语言人很成的机器指令,而这种二进制机器语言人很难理解难理解n于是人们采用字母、符号等来表示机器指令于是人们采用字母、符号等来
3、表示机器指令的二进制代码,这就是的二进制代码,这就是汇编语言汇编语言。n汇编语言又称为汇编语言又称为符号语言符号语言。5.2.2 5.2.2 汇编语言中的助记符汇编语言中的助记符 三种助记符三种助记符1 1指令助记符指令助记符2 2伪指令助记符伪指令助记符3 3其他助记符其他助记符1指令助记符指令助记符n指令助记符是汇编语言的基本助记符,它在指令助记符是汇编语言的基本助记符,它在汇编时被转换成二进制的指令代码汇编时被转换成二进制的指令代码n每一条指令代码都对应着每一条指令代码都对应着CPUCPU的一种操作。的一种操作。n由指令助记符构成的可执行语句称为由指令助记符构成的可执行语句称为指令语指令
4、语句句。n指令系统中的每条指令都是指令语句。指令系统中的每条指令都是指令语句。2 2伪指令助记符伪指令助记符n伪指令助记符是在汇编过程中用来伪指令助记符是在汇编过程中用来控制汇编程控制汇编程序的一些特定的助记符序的一些特定的助记符n它在汇编时不产生机器码,也不产生任何操作,它在汇编时不产生机器码,也不产生任何操作,它在汇编语言源程序中可以构成独立的语句。它在汇编语言源程序中可以构成独立的语句。n由伪指令助记符构成的语句称为由伪指令助记符构成的语句称为伪指令语句伪指令语句,又称又称指示性语句指示性语句。3 3其他助记符其他助记符n在汇编语言中,还有另一些常见的助记符,在汇编语言中,还有另一些常见
5、的助记符,如标号、常量、变量和表达式等,这些助记如标号、常量、变量和表达式等,这些助记符是可以由用户自己定义的。符是可以由用户自己定义的。n关于这些助记符的相关概念我们将在后面的关于这些助记符的相关概念我们将在后面的内容中作详细介绍。内容中作详细介绍。5.2.3 5.2.3 汇编语言的语句格式汇编语言的语句格式n汇编语言的语句有指令语句和伪指令语句两种。汇编语言的语句有指令语句和伪指令语句两种。n指令语句的格式为:指令语句的格式为:标号标号:指令助记符指令助记符 操作数操作数,操作数操作数;注释注释 n伪指令语句的格式为:伪指令语句的格式为:名字名字 伪指令助记符伪指令助记符 操作数操作数,操
6、作数操作数;注释注释(1 1)标号和名字)标号和名字n标号可作为标号可作为指令语句的符号地址指令语句的符号地址,用来代表,用来代表该指令语句在存储器中的地址该指令语句在存储器中的地址。n伪指令语句中的名字可以是变量名、段名、伪指令语句中的名字可以是变量名、段名、过程名、符号名等,用来代表它们在存储器过程名、符号名等,用来代表它们在存储器中的地址。中的地址。n指令语句中的标号后面有冒号,而伪指令语指令语句中的标号后面有冒号,而伪指令语句中的名字后面是空格句中的名字后面是空格。(2 2)助记符)助记符n助记符是汇编语句中必不可少的部分。助记符是汇编语句中必不可少的部分。n指令助记符规定了指令语句的
7、操作类型,指令助记符规定了指令语句的操作类型,n伪指令助记符规定了伪指令语句的伪操作功能。伪指令助记符规定了伪指令语句的伪操作功能。(3 3)操作数)操作数n操作数可以是寄存器、存储器、常数、变量、操作数可以是寄存器、存储器、常数、变量、标号和表达式。标号和表达式。n指令语句的操作数可能是一个、两个或没有,指令语句的操作数可能是一个、两个或没有,它们之间用逗号分隔。它们之间用逗号分隔。n伪指令语句的操作数根据伪操作命令的不同伪指令语句的操作数根据伪操作命令的不同而不同,有的伪指令不允许有操作数,有的而不同,有的伪指令不允许有操作数,有的伪指令允许带多个操作数。伪指令允许带多个操作数。(4 4)
8、注释)注释n以分号开头,直到行尾结束以分号开头,直到行尾结束,用来对语句或,用来对语句或程序的功能加以说明,增加程序的可读性。程序的功能加以说明,增加程序的可读性。n它不是程序的可执行部分,在汇编时不产生它不是程序的可执行部分,在汇编时不产生任何代码。任何代码。5.2.4 5.2.4 汇编语言的常数和表达式汇编语言的常数和表达式 1 1常数常数n数值常数:可以是二进制常数、八进制常数、数值常数:可以是二进制常数、八进制常数、十进制常和十六进制常数。其中,不同的数十进制常和十六进制常数。其中,不同的数制要用后缀表明。例如,制要用后缀表明。例如,6BH6BH,10110111B10110111B等
9、。等。n字符串常数:由单引号括起来的一个或多个字符串常数:由单引号括起来的一个或多个字符,例如,字符,例如,I AM A STUDENTI AM A STUDENT。2 2表达式表达式n汇编语言中的表达式分为汇编语言中的表达式分为数字表达式数字表达式和和地址地址表达式表达式两种。两种。n汇编时对表达式进行计算,如果表达式的结汇编时对表达式进行计算,如果表达式的结果是一个数值,则称为果是一个数值,则称为数字表达式数字表达式;n如果表达式的结果是一个存储单元的地址,如果表达式的结果是一个存储单元的地址,则称为则称为地址表达式地址表达式。n表达式表达式是由是由操作数操作数和和运算符运算符组成的。组成
10、的。n操作数可以是操作数可以是常数、标号、变量、寄存器或常数、标号、变量、寄存器或表达式表达式;n运算符有运算符有3 3类,分别是类,分别是算术运算符算术运算符、逻辑运逻辑运算符算符和和关系运算符关系运算符,如表,如表5-15-1所示。所示。(1 1)算术运算符)算术运算符n算术运算符常用于数字表达式或地址表达式算术运算符常用于数字表达式或地址表达式中,将其用于地址表达式中时,必须保证运中,将其用于地址表达式中时,必须保证运算有意义。算有意义。n例如,若例如,若COUNT的偏移地址为的偏移地址为1000H,则,则 LEA SI,COUNT+5等效于:等效于:LEA SI,1005H。(2 2)
11、逻辑运算符)逻辑运算符n逻辑运算符只能用于数字表达式中,不能用于逻辑运算符只能用于数字表达式中,不能用于地址表达式中。地址表达式中。n运算时是将两个数字操作数分别按位进行运算。运算时是将两个数字操作数分别按位进行运算。n例如:例如:MOV AL,0ABH AND 0FHMOV AL,0ABH AND 0FH等效于:等效于:MOV ALMOV AL,0BH0BH。(3 3)关系运算符)关系运算符n关系运算符连接的两个操作数必须关系运算符连接的两个操作数必须都是都是数字数字操作数或者操作数或者都是都是地址操作数地址操作数n运算结果是一个逻辑值:运算结果是一个逻辑值:如果关系为真,则如果关系为真,则
12、结果为结果为0FFFFH0FFFFH;如果关系为假,则结果为;如果关系为假,则结果为0 0。n例如:例如:MOV AXMOV AX,NUM GT 100NUM GT 100,如果如果NUMNUM大于大于100100,则等效于,则等效于 MOV AXMOV AX,0FFFFH0FFFFH否则,将等效于否则,将等效于MOV AXMOV AX,0 0。5.2.5 5.2.5 汇编语言的标号和变量汇编语言的标号和变量1 1标号标号n标号是指令语句的标识符标号是指令语句的标识符,用来表示该指令,用来表示该指令所在内存单元的所在内存单元的地址地址。n在汇编语言程序中,标号常用在第一条指令、在汇编语言程序中
13、,标号常用在第一条指令、转移和循环的目标指令,转移和循环的目标指令,n以及子程序的第一条指令之前,以及子程序的第一条指令之前,n并作为转移指令、循环指令或子程序调用指并作为转移指令、循环指令或子程序调用指令的操作数,从而确定程序转移的令的操作数,从而确定程序转移的目标地址目标地址。标号有标号有3 3个属性:个属性:n段地址段地址(SEGSEG):定义标号所在段的起始地址):定义标号所在段的起始地址n偏移地址偏移地址(OFFSETOFFSET):定义标号所在位置与段):定义标号所在位置与段的起始地址之间的偏移量;的起始地址之间的偏移量;n类型类型(TYPETYPE):可以是):可以是NEARNE
14、AR(段内转移)或(段内转移)或FARFAR(段间转移),一般默认为(段间转移),一般默认为NEARNEAR。2变量变量n变量变量主要用来定义存放在存储单元中的数据,主要用来定义存放在存储单元中的数据,一般都在数据段或附加段中定义,并且在程一般都在数据段或附加段中定义,并且在程序中可以随时修改其值。序中可以随时修改其值。n每个变量都有一个变量名,作为存储单元的每个变量都有一个变量名,作为存储单元的名字或符号地址,名字或符号地址,n我们通过变量名对存储单元中的数据进行访我们通过变量名对存储单元中的数据进行访问。问。变量的定义格式为:变量的定义格式为:变量名变量名 DB DB 表达式表达式;定义字
15、节变量;定义字节变量变量名变量名 DW DW 表达式表达式;定义字变量;定义字变量变量名变量名 DD DD 表达式表达式;定义双字变量;定义双字变量变量名变量名 DQ DQ 表达式表达式;定义;定义8 8字节变量字节变量变量名变量名 DT DT 表达式表达式;定义;定义1010字节变量字节变量变量具有变量具有5 5种属性:种属性:n段地址(段地址(SEGSEG):定义变量所在段的起始地址;:定义变量所在段的起始地址;n偏移地址(偏移地址(OFFSETOFFSET):定义变量的位置与段的起始:定义变量的位置与段的起始地址之间的偏移量;地址之间的偏移量;n类型(类型(TYPETYPE):定义变量所
16、占存储单元的字节数,:定义变量所占存储单元的字节数,用用DBDB、DWDW和和DDDD伪指令定义的变量类型分别是字节伪指令定义的变量类型分别是字节(BYTEBYTE)、字()、字(WORDWORD)和双字()和双字(DWORDDWORD)。)。n长度长度(LENGTHLENGTH):定义变量的个数。):定义变量的个数。n大小大小(SIZESIZE):分配给变量的总字节数。):分配给变量的总字节数。5.2.6 5.2.6 汇编语言的属性运算符汇编语言的属性运算符和表达式和表达式n用来获取或重新定义变量或标号属性的运算用来获取或重新定义变量或标号属性的运算符称为符称为属性运算符属性运算符。(1)取
17、地址运算符)取地址运算符SEGn格式:格式:SEG 变量或标号变量或标号n功能:返回变量或标号的段地址。功能:返回变量或标号的段地址。n例如,例如,MOV AX,SEG COUNT指的是将变量指的是将变量COUNT的段地址送入的段地址送入AX。(2 2)取偏移地址运算符)取偏移地址运算符OFFSETOFFSETn格式:格式:OFFSET OFFSET 变量或标号变量或标号n功能:返回变量或标号的偏移地址。功能:返回变量或标号的偏移地址。n例如,例如,MOV SIMOV SI,OFFSET COUNTOFFSET COUNT指的是将变量指的是将变量COUNTCOUNT的偏移地址送入的偏移地址送入
18、SISI。(3 3)取类型运算符)取类型运算符TYPETYPEn格式:格式:TYPE TYPE 变量或标号变量或标号n功能:返回变量或标号的类型值。如表功能:返回变量或标号的类型值。如表5-25-2所示。所示。n例如,例如,指令:指令:MOV AX,TYPE COUNT指的是将变量指的是将变量COUNT的类型值送入的类型值送入AX。(4 4)取变量长度运算符)取变量长度运算符LENGTHLENGTHn格式:格式:LENGTH LENGTH 变量变量n功能:返回变量的长度(即功能:返回变量的长度(即变量中元素的个变量中元素的个数数),可以是以字节、字或双字为单位。),可以是以字节、字或双字为单位
19、。n例如,定义例如,定义 COUNT DW 100 DUP(1)COUNT DW 100 DUP(1),则则LENGTH COUNTLENGTH COUNT的值为的值为100100。n再如,定义再如,定义 BUFF DD 1BUFF DD 1,2 2,3 3则则LENGTH BUFFLENGTH BUFF的值为的值为1 1。(5 5)取变量总字节数运算符)取变量总字节数运算符SIZESIZEn格式:格式:SIZE SIZE 变量变量n功能:返回变量所包含的总字节数。功能:返回变量所包含的总字节数。n例如,定义例如,定义 COUNT DW 100 DUP(1)COUNT DW 100 DUP(1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 接口 ppt 课件 汇编语言 程序设计
限制150内