《微机系统原理及接口技术应用.ppt》由会员分享,可在线阅读,更多相关《微机系统原理及接口技术应用.ppt(97页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、微机系统原理及接口技术应用微机系统原理及接口技术应用微机系统原理及接口技术应用微机系统原理及接口技术应用第四章第四章 宏汇编语言程序设计宏汇编语言程序设计8 学时学时微机系统原理及接口技术应用微机系统原理及接口技术应用微机系统原理及接口技术应用微机系统原理及接口技术应用目目 录录u4.1 汇编语言程序设计特点汇编语言程序设计特点u4.2 8086宏汇编源程序的组成宏汇编源程序的组成u4.3 8086宏汇编语言的基本语法宏汇编语言的基本语法u4.4 8086宏汇编语言常用伪指令宏汇编语言常用伪指令u4.5 8086宏汇编语言程序设计技术宏汇编语言程序设计技术微机系统原理及接口技术应用微机系统原理
2、及接口技术应用微机系统原理及接口技术应用微机系统原理及接口技术应用u程序是一组为完成某种功能而按一定顺序程序是一组为完成某种功能而按一定顺序(由算法确定)编排的(由算法确定)编排的指令序列指令序列。u本章将首先介绍本章将首先介绍8086宏汇编语言的基本语宏汇编语言的基本语法及常用伪指令,然后用实例说明法及常用伪指令,然后用实例说明8086宏宏汇编语言源程序的设计方法。汇编语言源程序的设计方法。微机系统原理及接口技术应用微机系统原理及接口技术应用微机系统原理及接口技术应用微机系统原理及接口技术应用4.1 汇编语言程序设计特点汇编语言程序设计特点u汇编语言是一种用符号表示的汇编语言是一种用符号表示
3、的、面向、面向CPU指令系统指令系统的程序设计语言。汇编语言具有的程序设计语言。汇编语言具有以下以下两个基本特点:两个基本特点:程序设计人员能更充分地利用机器硬件的程序设计人员能更充分地利用机器硬件的程序设计人员能更充分地利用机器硬件的程序设计人员能更充分地利用机器硬件的全部全部全部全部功能,发挥机器的长处;功能,发挥机器的长处;功能,发挥机器的长处;功能,发挥机器的长处;程序目标代码占用内存少,执行程序目标代码占用内存少,执行程序目标代码占用内存少,执行程序目标代码占用内存少,执行速度快速度快速度快速度快,效率效率效率效率高高高高,具有,具有,具有,具有实时性实时性实时性实时性;微机系统原理
4、及接口技术应用微机系统原理及接口技术应用微机系统原理及接口技术应用微机系统原理及接口技术应用汇编语言与高级语言汇编语言与高级语言u由于汇编的特点,由于汇编的特点,汇编语言汇编语言常用于编写计常用于编写计算机算机系统程序系统程序、实时实时通信程序和通信程序和实时实时控制控制程序。但汇编语言程序依赖于机器硬件,程序。但汇编语言程序依赖于机器硬件,其其通用性和移植性都较差通用性和移植性都较差。u相对于汇编语言,相对于汇编语言,高级语言高级语言的的编程方便快编程方便快捷,通用性和移植性都较好捷,通用性和移植性都较好,在一些涉及,在一些涉及大量数据处理、人机界面等设计任务的应大量数据处理、人机界面等设计
5、任务的应用程序中,采用高级语言编程更为合适。用程序中,采用高级语言编程更为合适。微机系统原理及接口技术应用微机系统原理及接口技术应用微机系统原理及接口技术应用微机系统原理及接口技术应用汇编语言源程序机器语言程序(目标代码)汇编(可由汇编程序完成)高级语言源程序编译或解释(可由编译程序完成)从源程序获得目标程序的过程从源程序获得目标程序的过程u为了能顺利完成汇编,用户必须为汇编程序提供为了能顺利完成汇编,用户必须为汇编程序提供为了能顺利完成汇编,用户必须为汇编程序提供为了能顺利完成汇编,用户必须为汇编程序提供一些额外的、与硬件有关的信息,如:程序使用一些额外的、与硬件有关的信息,如:程序使用一些
6、额外的、与硬件有关的信息,如:程序使用一些额外的、与硬件有关的信息,如:程序使用的变量应分别存放在内存的哪个单元、堆栈应从的变量应分别存放在内存的哪个单元、堆栈应从的变量应分别存放在内存的哪个单元、堆栈应从的变量应分别存放在内存的哪个单元、堆栈应从内存的什么地址开始等等。内存的什么地址开始等等。内存的什么地址开始等等。内存的什么地址开始等等。微机系统原理及接口技术应用微机系统原理及接口技术应用微机系统原理及接口技术应用微机系统原理及接口技术应用4.2 8086宏汇编源程序的组成宏汇编源程序的组成u由由“指令指令”和和“伪指令伪指令”共同构成的。共同构成的。“指令指令指令指令”由由由由8086C
7、PU8086CPU规定的;规定的;规定的;规定的;“伪指令伪指令伪指令伪指令”说明与硬件有关的信息;说明与硬件有关的信息;说明与硬件有关的信息;说明与硬件有关的信息;u“段段”结构结构因为因为因为因为80868086系统的存储器采用分段管理系统的存储器采用分段管理系统的存储器采用分段管理系统的存储器采用分段管理微机系统原理及接口技术应用微机系统原理及接口技术应用微机系统原理及接口技术应用微机系统原理及接口技术应用段段(例例4.1);段名段名1SEGMENTSEGMENT;一个段的开始语句1语句2 段名段名1ENDSENDS;一个段的结束;段名段名2SEGMENTSEGMENT;另一个段的开始段
8、名段名2ENDSENDS;另一个段的结束;其它段;ENDEND;源代码结束微机系统原理及接口技术应用微机系统原理及接口技术应用微机系统原理及接口技术应用微机系统原理及接口技术应用语语 句句u语语句句是是由由各各种种符符号号(标标记记)及及分分隔隔符符按按照照一定的规则组织起来的一个有序序列。一定的规则组织起来的一个有序序列。标识符 操作符操作符 操作数操作数 注释u有有三三种种基基本本语语句句:指指令令性性语语句句(指指令令)、指示性指示性语句(伪指令)和语句(伪指令)和宏指令宏指令。微机系统原理及接口技术应用微机系统原理及接口技术应用微机系统原理及接口技术应用微机系统原理及接口技术应用u指令
9、性语句指令性语句:即执行性语句即执行性语句即执行性语句即执行性语句(指令指令指令指令),),与机器码一一对与机器码一一对与机器码一一对与机器码一一对应,表示某种确定操作,包括四部分:应,表示某种确定操作,包括四部分:应,表示某种确定操作,包括四部分:应,表示某种确定操作,包括四部分:标号:标号:标号:标号:指令操作码指令操作码指令操作码指令操作码 操作数操作数操作数操作数 ;注释注释注释注释 例:例:例:例:AGANAGAN:ADCADC SUMSUM,AXAX;累加累加累加累加u指示性语句指示性语句:即说明性语句即说明性语句即说明性语句即说明性语句(伪指令伪指令伪指令伪指令),),不对应机器
10、码,不对应机器码,不对应机器码,不对应机器码,只为汇编提供所需信息,由四部分组成:只为汇编提供所需信息,由四部分组成:只为汇编提供所需信息,由四部分组成:只为汇编提供所需信息,由四部分组成:名字名字名字名字 伪指令伪指令伪指令伪指令 操作数操作数操作数操作数 ;注释注释注释注释 例:例:例:例:SUMSUMDW 0DW 0;为结果保留一个字为结果保留一个字为结果保留一个字为结果保留一个字 u宏指令宏指令:由伪指令定义的指令序列,包括宏定义、宏由伪指令定义的指令序列,包括宏定义、宏由伪指令定义的指令序列,包括宏定义、宏由伪指令定义的指令序列,包括宏定义、宏调用和宏扩展三部分调用和宏扩展三部分调用
11、和宏扩展三部分调用和宏扩展三部分微机系统原理及接口技术应用微机系统原理及接口技术应用微机系统原理及接口技术应用微机系统原理及接口技术应用标识符字段标识符字段u标识符字段由各种有效字符组成,一般表标识符字段由各种有效字符组成,一般表示符号地址,具有示符号地址,具有段基址段基址、偏移量偏移量、类型类型三种属性。三种属性。u很多情况下标识符字段是语句中的很多情况下标识符字段是语句中的可选部可选部分分,主要为便于程序的读写方便而使用。,主要为便于程序的读写方便而使用。u通常有通常有:标号标号 名字名字微机系统原理及接口技术应用微机系统原理及接口技术应用微机系统原理及接口技术应用微机系统原理及接口技术应
12、用操作符字段操作符字段u操作符字段:由保留字组成,是语句中操作符字段:由保留字组成,是语句中不不可缺少可缺少的部分。的部分。u包括包括:指令助记符指令助记符伪指令助记符伪指令助记符微机系统原理及接口技术应用微机系统原理及接口技术应用微机系统原理及接口技术应用微机系统原理及接口技术应用操作数字段操作数字段u操作数字段操作数字段:表示操作符:表示操作符操作的对象操作的对象。u操作数可能为以下几种情况:操作数可能为以下几种情况:常量操作数:常量操作数:常量操作数:常量操作数:如如如如 34 34 等等等等。寄存器操作数:寄存器操作数:寄存器操作数:寄存器操作数:如如如如 AXAX 等等等等。存储器操
13、作数:如存储器操作数:如存储器操作数:如存储器操作数:如0100H0100H 等。等。等。等。表达式操作数:如表达式操作数:如表达式操作数:如表达式操作数:如AX+2AX+2、SEG NUM1SEG NUM1等。等。等。等。微机系统原理及接口技术应用微机系统原理及接口技术应用微机系统原理及接口技术应用微机系统原理及接口技术应用注释字段注释字段u注释字段:用于说明、解释程序使之便于注释字段:用于说明、解释程序使之便于阅读或检查的任何文字或字符,位于语句阅读或检查的任何文字或字符,位于语句行的末尾,用行的末尾,用分号分号(;)引导。引导。u注释注释对汇编不起任何作用对汇编不起任何作用,不对应于任何
14、,不对应于任何机器码,仅增强源程序的可读性。机器码,仅增强源程序的可读性。微机系统原理及接口技术应用微机系统原理及接口技术应用微机系统原理及接口技术应用微机系统原理及接口技术应用DATADATASEGMENTSEGMENT;定义数据段定义数据段定义数据段定义数据段D1D1DB 5 DUPDB 5 DUP(?)(?)(?)(?);连续的字节单元连续的字节单元连续的字节单元连续的字节单元CCCCEQU$EQU$D1D1;对单元计数对单元计数对单元计数对单元计数SUMSUMDW 0DW 0;为结果保留一个字为结果保留一个字为结果保留一个字为结果保留一个字DATADATAENDSENDS;数据段定义结
15、束数据段定义结束数据段定义结束数据段定义结束STACK SEGMENT PARA STACK STACKSTACK SEGMENT PARA STACK STACK;定义堆栈段定义堆栈段定义堆栈段定义堆栈段DB 100 DUP DB 100 DUP(?)(?)(?)(?);100;100字节的栈空间字节的栈空间字节的栈空间字节的栈空间STACKSTACK ENDSENDS;堆栈段定义结束堆栈段定义结束堆栈段定义结束堆栈段定义结束CODECODE SEGMENTSEGMENT;定义代码段定义代码段定义代码段定义代码段ASSUMEASSUME DS:DATA DS:DATA,SS:STACKSS:
16、STACK,CS:CODECS:CODE;对各段进行说明对各段进行说明对各段进行说明对各段进行说明BEGINBEGIN:MOV AXMOV AX,DATADATA;DSDS初始化为初始化为初始化为初始化为DATADATAMOV DSMOV DS,AXAXLEA SILEA SI,D1D1;预置源数据的指针预置源数据的指针预置源数据的指针预置源数据的指针例例4.6:多个连续字节单元的累加多个连续字节单元的累加定义存储单元定义存储单元的数据的数据伪伪指令指令定义堆栈定义堆栈段定义语句段定义语句段定义语句段定义语句作作堆栈用的堆栈用的存储单元存储单元指令指令微机系统原理及接口技术应用微机系统原理及接
17、口技术应用微机系统原理及接口技术应用微机系统原理及接口技术应用MOV CXMOV CX,CC+1CC+1;预置次数预置次数预置次数预置次数LODS BYTE PTR SILODS BYTE PTR SI;取一个数并修改指针取一个数并修改指针取一个数并修改指针取一个数并修改指针DEC CXDEC CX;修改次数修改次数修改次数修改次数MOV AHMOV AH,0 0;清;清;清;清AXAX的高字节的高字节的高字节的高字节CLCCLC;清;清;清;清CFCF位位位位AGANAGAN:ADC SUMADC SUM,AXAX;累加累加累加累加LODS BYTE PTR SILODS BYTE PTR
18、SI;再取数并修改指针再取数并修改指针再取数并修改指针再取数并修改指针LOOP AGANLOOP AGAN;控制循环控制循环控制循环控制循环MOV AHMOV AH,4CH4CH;完成,返回完成,返回完成,返回完成,返回DOSDOSINT 21HINT 21HCODECODEENDSENDS;代码段结束代码段结束代码段结束代码段结束ENDENDBEGINBEGIN;整个程序结束整个程序结束整个程序结束整个程序结束段段定义定义汇编程序汇编程序结束结束微机系统原理及接口技术应用微机系统原理及接口技术应用微机系统原理及接口技术应用微机系统原理及接口技术应用4.3 8086宏汇编语言的基本语法宏汇编语
19、言的基本语法u介绍介绍8086宏汇编语言宏汇编语言MASM5.0规定的一些规定的一些基本语法,包括各种可使用的助记符、保基本语法,包括各种可使用的助记符、保留字,以及各种数据类型及表达式。留字,以及各种数据类型及表达式。微机系统原理及接口技术应用微机系统原理及接口技术应用微机系统原理及接口技术应用微机系统原理及接口技术应用4.3.1 字符集字符集u英文字母:包括大写字母英文字母:包括大写字母AZ和小写字母和小写字母az。宏汇编语言中的大小写字母的作用相同,宏汇编语言中的大小写字母的作用相同,不予不予区分区分。u阿拉伯数字阿拉伯数字:09。注:数字不用于标识符第一位注:数字不用于标识符第一位注:
20、数字不用于标识符第一位注:数字不用于标识符第一位u特殊符号:包括可打印字符和不可打印字符。特殊符号:包括可打印字符和不可打印字符。其中:其中:可打印字符包括可打印字符包括可打印字符包括可打印字符包括、$、&等等。等等。等等。等等。不可打印字符包括空格符、制表符(不可打印字符包括空格符、制表符(不可打印字符包括空格符、制表符(不可打印字符包括空格符、制表符(TabTab键)、回车键)、回车键)、回车键)、回车符、换行符。符、换行符。符、换行符。符、换行符。微机系统原理及接口技术应用微机系统原理及接口技术应用微机系统原理及接口技术应用微机系统原理及接口技术应用4.3.2 常量常量u数字常量数字常量
21、二进制数:以二进制数:以二进制数:以二进制数:以“B B”结尾,如结尾,如结尾,如结尾,如0000110100001101B B;八进制数:以八进制数:以八进制数:以八进制数:以“OO”结尾,如结尾,如结尾,如结尾,如725725OO;十六进制数:以十六进制数:以十六进制数:以十六进制数:以“HH”结尾,并且必须以数字结尾,并且必须以数字结尾,并且必须以数字结尾,并且必须以数字打头,即若最高位为字母打头,即若最高位为字母打头,即若最高位为字母打头,即若最高位为字母A AF F,前面应加前面应加前面应加前面应加0 0,如如如如0 0A12A12HH;十进制数:以十进制数:以十进制数:以十进制数:
22、以“D D”结尾或无任何字母作结尾,结尾或无任何字母作结尾,结尾或无任何字母作结尾,结尾或无任何字母作结尾,如如如如1010D D、1010。微机系统原理及接口技术应用微机系统原理及接口技术应用微机系统原理及接口技术应用微机系统原理及接口技术应用u字符串常量字符串常量字符串常量表示为包含在两个字符串常量表示为包含在两个字符串常量表示为包含在两个字符串常量表示为包含在两个单引号单引号单引号单引号之间的一之间的一之间的一之间的一连串连串连串连串ASCIIASCII字符。当单引号本身作为一个串元字符。当单引号本身作为一个串元字符。当单引号本身作为一个串元字符。当单引号本身作为一个串元素时,需连写两个
23、单引号。每个串元素的值定素时,需连写两个单引号。每个串元素的值定素时,需连写两个单引号。每个串元素的值定素时,需连写两个单引号。每个串元素的值定义为该元素所对应的义为该元素所对应的义为该元素所对应的义为该元素所对应的1 1字节字节字节字节ASCIIASCII码值码值码值码值。微机系统原理及接口技术应用微机系统原理及接口技术应用微机系统原理及接口技术应用微机系统原理及接口技术应用4.3.3 保留字保留字u汇编源程序中汇编源程序中标识符不能使用标识符不能使用的字符串的字符串8086CPU8086CPU规定的所有规定的所有规定的所有规定的所有指令助记符指令助记符指令助记符指令助记符:如:如:如:如M
24、OVMOV、ADDADD等。等。等。等。8086CPU8086CPU中各中各中各中各寄存器名寄存器名寄存器名寄存器名:包括:包括:包括:包括1616位和位和位和位和8 8位寄存位寄存位寄存位寄存器。如器。如器。如器。如ALAL、DHDH、AXAX、CSCS、TFTF等。等。等。等。宏汇编程序规定的所有宏汇编程序规定的所有宏汇编程序规定的所有宏汇编程序规定的所有伪指令助记符伪指令助记符伪指令助记符伪指令助记符:如:如:如:如ASSUMEASSUME、DBDB、DWDW、DDDD等。等。等。等。宏汇编程序规定的宏汇编程序规定的宏汇编程序规定的宏汇编程序规定的其他助记符其他助记符其他助记符其他助记符
25、:ABSABS、BYTEBYTE、DUPDUP、EQEQ、GEGE、SEGSEG、SIZESIZE等。等。等。等。微机系统原理及接口技术应用微机系统原理及接口技术应用微机系统原理及接口技术应用微机系统原理及接口技术应用4.3.4 符号符号u符号是由用户自行定义的、具有特殊意义符号是由用户自行定义的、具有特殊意义的字符序列,最长不超过的字符序列,最长不超过31个字符(多余个字符(多余字符将被忽略)。字符将被忽略)。u符号由字母、数字符号由字母、数字(不可打头)(不可打头)以及特殊以及特殊字符(字符(_、?)组成。)组成。u不能与任何保留字相同。不能与任何保留字相同。u包括包括:变量名、标号、段名
26、、过程名变量名、标号、段名、过程名微机系统原理及接口技术应用微机系统原理及接口技术应用微机系统原理及接口技术应用微机系统原理及接口技术应用4.3.5 表达式表达式u由若干操作数和运算符组成的有意义的组由若干操作数和运算符组成的有意义的组合序列。合序列。u表达式可出现于源程序的任何地方,表达式可出现于源程序的任何地方,u在在汇编过程中汇编过程中(而不是程序执行过程中而不是程序执行过程中)即可产生确定的值。即可产生确定的值。微机系统原理及接口技术应用微机系统原理及接口技术应用微机系统原理及接口技术应用微机系统原理及接口技术应用表达式中的操作数表达式中的操作数u常量操作数常量操作数:直接写出的数或用
27、常量名表:直接写出的数或用常量名表示的数。示的数。u存储器操作数存储器操作数:可以为变量名或标号。:可以为变量名或标号。微机系统原理及接口技术应用微机系统原理及接口技术应用微机系统原理及接口技术应用微机系统原理及接口技术应用表达式中的运算符表达式中的运算符u多。多。u包括包括算术运算符算术运算符、逻辑运算符逻辑运算符、关系运算关系运算符符、分析运算符分析运算符以及以及合成运算符合成运算符五种。五种。u有优先级的区别。有优先级的区别。(ref:表表4.1,4.2)微机系统原理及接口技术应用微机系统原理及接口技术应用微机系统原理及接口技术应用微机系统原理及接口技术应用uu算术运算符:算术运算符:+
28、、-、*、/、MOD、SHL、SHRuu逻辑运算符:逻辑运算符:AND、OR、XOR、NOTuu关系运算符:关系运算符:EQ、NE、GT、LT、GE、LEuu分析运算符:分析运算符:SEG、OFFSET、TYPE、SIZE、LENGTH、HIGH、LOWuu综合运算符:综合运算符:PTR、DS:、THIS、SHORT微机系统原理及接口技术应用微机系统原理及接口技术应用微机系统原理及接口技术应用微机系统原理及接口技术应用算术运算符算术运算符数值表达式数值表达式中可使用所有算术运算符中可使用所有算术运算符地址表达式地址表达式仅使用仅使用+、-算术运算符算术运算符算术运算符算术运算符不影响标志位不影
29、响标志位例:完成例:完成80H+90H解:解:解:解:MOV ALMOV AL,80H+90H80H+90H;使用使用使用使用数值表达式数值表达式数值表达式数值表达式 ;(AL)=10H;(AL)=10H、CF=CF=不变不变不变不变n n MOV ALMOV AL,80H80H ADD AL ADD AL,90H90H;使用使用使用使用加法指令加法指令加法指令加法指令 ;(AL)=10H;(AL)=10H、CF=1CF=1微机系统原理及接口技术应用微机系统原理及接口技术应用微机系统原理及接口技术应用微机系统原理及接口技术应用逻辑运算符逻辑运算符u逻辑运算符在两个操作数之间逻辑运算符在两个操作
30、数之间按位按位进行二进行二进制布尔运算,结果产生确定的数值。进制布尔运算,结果产生确定的数值。u逻辑运算符与逻辑指令助记符逻辑运算符与逻辑指令助记符形同意不同形同意不同u例例:AND BL,46H AND 0FH;汇编后得到汇编后得到汇编后得到汇编后得到“AND BL,06H”的目标码的目标码的目标码的目标码微机系统原理及接口技术应用微机系统原理及接口技术应用微机系统原理及接口技术应用微机系统原理及接口技术应用关系运算符关系运算符u在两个无符号数操作数之间进行大小关系比较在两个无符号数操作数之间进行大小关系比较u若关系满足则返回若关系满足则返回全全1,否则返回,否则返回全全0。u例例:MOV
31、AX,0A2H NE 02H;汇编后得到汇编后得到汇编后得到汇编后得到“MOV AX,0FFFFH”的目标码的目标码的目标码的目标码微机系统原理及接口技术应用微机系统原理及接口技术应用微机系统原理及接口技术应用微机系统原理及接口技术应用分析运算符分析运算符u对单个操作数进行属性分解,分别返回不同属对单个操作数进行属性分解,分别返回不同属性的值性的值uSEG取变量或标号所在段的段寄存器值取变量或标号所在段的段寄存器值作为段基址,结果为作为段基址,结果为16位值位值u OFFSET取变量或标号的段内偏移量,结果取变量或标号的段内偏移量,结果为为16位值位值u TYPE取变量或标号的类型取变量或标号
32、的类型u LENGTH取取DUP重复次数重复次数u SIZE取分配给变量的字节个数取分配给变量的字节个数微机系统原理及接口技术应用微机系统原理及接口技术应用微机系统原理及接口技术应用微机系统原理及接口技术应用例例 4.13/4.14DSEG SEGMENTDSEG SEGMENTBUFFBUFF DW DW 10DUP10DUP(1234H1234H),),),),10H10H,00H00HCOUNCOUN DD DD 12345678H12345678HDSEG EDNSDSEG EDNS则:则:SEG BUFF=DSEG ;段基址段基址 OFFSET BUFF=0 ;偏移量偏移量 TYPE
33、 BUFF=2(字)字);类型;类型 SIZE BUFF=10*2=20 ;字节数字节数 LENGTH BUFF=10 ;DUP次数次数 HIGH BUFF=12H;高字节高字节 LOW BUFF=34H ;低字节低字节 SEG COUN=DSEGOFFSET COUN=24TYPE COUN=4(双字)双字)SIZE COUN=4 LENGTH COUN=1 微机系统原理及接口技术应用微机系统原理及接口技术应用微机系统原理及接口技术应用微机系统原理及接口技术应用合成运算符合成运算符u合成运算符修改合成运算符修改已定义已定义的单个操作数,重的单个操作数,重新生成段基址、偏移量相同而新生成段基址
34、、偏移量相同而类型不同类型不同的的新操作数新操作数。u有有:PTR、THIS、SHORT微机系统原理及接口技术应用微机系统原理及接口技术应用微机系统原理及接口技术应用微机系统原理及接口技术应用uPTR:“新类型新类型 PTR 原操作数原操作数”,新操作,新操作数的类型为表达式中指定的数的类型为表达式中指定的“新类型新类型”,新新操作数的段基址和偏移量与操作数的段基址和偏移量与“原操作数原操作数”相同。相同。uTHIS:“THIS 新类型新类型”,类似,类似PTR,不同不同的是的是:新操作数的段基址和偏移量为汇编过新操作数的段基址和偏移量为汇编过程中遇到程中遇到THIS运算符时的当前值运算符时的
35、当前值.uSHORT:“SHORT Near-label”,表达式代表达式代表的新标号的类型为表的新标号的类型为SHORT微机系统原理及接口技术应用微机系统原理及接口技术应用微机系统原理及接口技术应用微机系统原理及接口技术应用合成运算符的例子合成运算符的例子例例4.15DAT1DB1DAT2DB3MOVAL,DAT1MOVAX,WORDPTR DAT1例例4.16UNITDW 10DUP(?)UNIT1EQUTHISBYTE微机系统原理及接口技术应用微机系统原理及接口技术应用微机系统原理及接口技术应用微机系统原理及接口技术应用例例例例4.174.17AVRAVREQU THISEQU THIS
36、FARFARAVR1:AVR1:MOV AX,MOV AX,0 0JMP AVR1JMP AVR1JMP AVRJMP AVR例例例例4.184.18OTHER OTHER EQUEQUTHISTHIS NEARNEARJNZ SHORTJNZ SHORTOTHEROTHER.微机系统原理及接口技术应用微机系统原理及接口技术应用微机系统原理及接口技术应用微机系统原理及接口技术应用4.4 8086宏汇编语言常用伪指令宏汇编语言常用伪指令u8086宏汇编语言宏汇编语言MASM5.0规定的常用伪指规定的常用伪指令,包括令,包括数据定义语句、程序结构语句、数据定义语句、程序结构语句、模块链接语句、列表
37、控制语句、结构性数模块链接语句、列表控制语句、结构性数据语句、有关宏的语句、条件汇编语句据语句、有关宏的语句、条件汇编语句等等。微机系统原理及接口技术应用微机系统原理及接口技术应用微机系统原理及接口技术应用微机系统原理及接口技术应用4.4.1数据定义伪指令数据定义伪指令u符号定义语句符号定义语句EQUCOUNT COUNT EQUEQU CX CX;用用用用COUNTCOUNT代替代替代替代替CXCX通用寄存器通用寄存器通用寄存器通用寄存器 MMEQUEQU MOV MOV;用用用用MM代替代替代替代替MOVMOV指令助记符指令助记符指令助记符指令助记符 例例例例 4.204.20“$”“$”
38、与与与与EQUEQU结合使用结合使用结合使用结合使用BUFBUFDWDW?,?,?;定义两个字变量,共占用定义两个字变量,共占用定义两个字变量,共占用定义两个字变量,共占用4 4个字节的内存空间个字节的内存空间个字节的内存空间个字节的内存空间SUMSUMDDDD?;定义一个双字变量,占用定义一个双字变量,占用定义一个双字变量,占用定义一个双字变量,占用4 4个字节的内存空间个字节的内存空间个字节的内存空间个字节的内存空间NONO EQUEQU$BUFBUF;NO;NO表示当前内存单元与表示当前内存单元与表示当前内存单元与表示当前内存单元与BUFBUF单元之单元之单元之单元之间的间的间的间的“距
39、离距离距离距离”,;NO;NO等同于立即数等同于立即数等同于立即数等同于立即数“8”8”,不占内存空,不占内存空,不占内存空,不占内存空间间间间微机系统原理及接口技术应用微机系统原理及接口技术应用微机系统原理及接口技术应用微机系统原理及接口技术应用u符号定义语句符号定义语句;赋值赋值PP PP=89FAH 89FAHPP PP=PP+1 PP+1;PP=89FBH;PP=89FBHu等号语句等号语句与与EQU语句语句的相同点在于的相同点在于:符号符号而而非变量,故用非变量,故用EQU、=定义的符号定义的符号不占用不占用存储器单元存储器单元u区别在于区别在于:等号语句等号语句可以在同一源程序中可
40、以在同一源程序中重重复定义复定义符号而符号而无需解除无需解除微机系统原理及接口技术应用微机系统原理及接口技术应用微机系统原理及接口技术应用微机系统原理及接口技术应用数据定义语句数据定义语句DB、DW、DD等等u用于为数据项分配存储单元并预置初值。用于为数据项分配存储单元并预置初值。DB 变量为变量为字节字节数据类型(数据类型(8位位)DW 变量为变量为字字数据类型(数据类型(16位位)DD 变量为变量为双字双字数据类型(数据类型(32位位)DQ 变量为变量为4字字数据类型(数据类型(64位位)DT 变量为变量为10字节字节数据类型(数据类型(80位位)微机系统原理及接口技术应用微机系统原理及接
41、口技术应用微机系统原理及接口技术应用微机系统原理及接口技术应用uONEONEDBDB 8 8;给变量给变量给变量给变量ONEONE分配一个字节分配一个字节分配一个字节分配一个字节,并,并,并,并预置初值为预置初值为预置初值为预置初值为8 8uTWOTWODBDB?;字节变量字节变量字节变量字节变量TWOTWO初值不定初值不定初值不定初值不定uSTR STR DB DB 96,20,?,96,20,?,5757;以以以以STRSTR为首址为首址为首址为首址连续分配连续分配连续分配连续分配4 4个字节的存储单元个字节的存储单元个字节的存储单元个字节的存储单元uSTR STR DBDB How ar
42、e you?$How are you?$;定义定义定义定义字符串字符串字符串字符串uTWIN TWIN DBDB 5 5 DUPDUP(0FFH)(0FFH);连续分配连续分配连续分配连续分配5 5个字节个字节个字节个字节,初值均为初值均为初值均为初值均为0FFH0FFHu DBDB 100 100 DUPDUP(?)(?);连续分配连续分配连续分配连续分配100100个字节个字节个字节个字节单元,单元,单元,单元,初值不定初值不定初值不定初值不定微机系统原理及接口技术应用微机系统原理及接口技术应用微机系统原理及接口技术应用微机系统原理及接口技术应用DB 与与DW的应用的应用DATA DATA
43、 SEGMENTSEGMENTARE1 ARE1 DBDB 20H 20H,30H 30H ARE2 ARE2 DWDW 2030H 2030HARE3 ARE3 DBDB A A,B B ARE4 ARE4 DWDW AB ABDATA DATA ENDSENDS41H41H42H42H42H42H41H41H20H20H30H30H30H30H20H20HARE1ARE1ARE2ARE2ARE3ARE3ARE4ARE4微机系统原理及接口技术应用微机系统原理及接口技术应用微机系统原理及接口技术应用微机系统原理及接口技术应用4.4.2 程序结构伪指令程序结构伪指令u段定义语句段定义语句 SEG
44、MENT/ENDSu用于对用于对 DS、ES、SS、CS 段的定义段的定义u语句格式:语句格式:段名段名段名段名 SEGMENT SEGMENT 定位选择定位选择定位选择定位选择 链接类型链接类型链接类型链接类型 类别标识符类别标识符类别标识符类别标识符 段名段名段名段名 ENDSENDSuENDS必须与必须与SEGMENT成对出现,且段名必须成对出现,且段名必须一致。一致。微机系统原理及接口技术应用微机系统原理及接口技术应用微机系统原理及接口技术应用微机系统原理及接口技术应用段定义的相关约定段定义的相关约定链接类型链接类型链接类型链接类型:表示与其它段的关系,为连接程序提供:表示与其它段的关
45、系,为连接程序提供:表示与其它段的关系,为连接程序提供:表示与其它段的关系,为连接程序提供信息,可以有信息,可以有信息,可以有信息,可以有6 6种选择种选择种选择种选择:定位类型定位类型定位类型定位类型:规定段的:规定段的:规定段的:规定段的起始边界起始边界起始边界起始边界,有,有,有,有4 4种选择:种选择:种选择:种选择:PAGEPAGE:段起始地址的段起始地址的段起始地址的段起始地址的最低最低最低最低8 8位位位位必须为必须为必须为必须为0 0。PARAPARA:段起始地址的段起始地址的段起始地址的段起始地址的最低最低最低最低4 4位位位位必须为必须为必须为必须为0 0。WORDWORD
46、:段起始地址的段起始地址的段起始地址的段起始地址的最低最低最低最低1 1位位位位必须为必须为必须为必须为0 0,即从偶地址开始。,即从偶地址开始。,即从偶地址开始。,即从偶地址开始。BYTEBYTE:段起始地址为段起始地址为段起始地址为段起始地址为任意值任意值任意值任意值,即从任何地址开始都行。,即从任何地址开始都行。,即从任何地址开始都行。,即从任何地址开始都行。缺省类型为缺省类型为缺省类型为缺省类型为PARAPARA。NONENONE:本段与其它段逻辑上本段与其它段逻辑上本段与其它段逻辑上本段与其它段逻辑上不发生关系不发生关系不发生关系不发生关系,每段都有自己,每段都有自己,每段都有自己,
47、每段都有自己的基地址的基地址的基地址的基地址(缺省选择缺省选择缺省选择缺省选择)。PUBLICPUBLIC:连接程序首先将本段与其它连接程序首先将本段与其它连接程序首先将本段与其它连接程序首先将本段与其它同名同类别的段相同名同类别的段相同名同类别的段相同名同类别的段相邻地连接邻地连接邻地连接邻地连接在一起,然后为所有这些在一起,然后为所有这些在一起,然后为所有这些在一起,然后为所有这些PUBLICPUBLIC段指定一个段指定一个段指定一个段指定一个共同共同共同共同的段基址的段基址的段基址的段基址。连接的先后次序由连接命令指定。连接的先后次序由连接命令指定。连接的先后次序由连接命令指定。连接的先
48、后次序由连接命令指定。微机系统原理及接口技术应用微机系统原理及接口技术应用微机系统原理及接口技术应用微机系统原理及接口技术应用STACKSTACK:与:与:与:与PUBLICPUBLIC同样处理,但此段作为堆栈段同样处理,但此段作为堆栈段同样处理,但此段作为堆栈段同样处理,但此段作为堆栈段,SSSS指指指指向第一个向第一个向第一个向第一个STACKSTACK段段段段。COMMONCOMMON:本段与其它本段与其它本段与其它本段与其它同名同类别段重叠同名同类别段重叠同名同类别段重叠同名同类别段重叠,段基址与最后,段基址与最后,段基址与最后,段基址与最后定义的相同,长度为同名段中最大段的长度。定义
49、的相同,长度为同名段中最大段的长度。定义的相同,长度为同名段中最大段的长度。定义的相同,长度为同名段中最大段的长度。ATAT表达式:连接程序把本段装在表达式值所表达式:连接程序把本段装在表达式值所表达式:连接程序把本段装在表达式值所表达式:连接程序把本段装在表达式值所指定的段地址指定的段地址指定的段地址指定的段地址(此方式不能指定代码段)。(此方式不能指定代码段)。(此方式不能指定代码段)。(此方式不能指定代码段)。MEMORYMEMORY:同:同:同:同PUBLICPUBLIC连接程序将本段定位在被连接在一连接程序将本段定位在被连接在一连接程序将本段定位在被连接在一连接程序将本段定位在被连接
50、在一起的其它所有段之上。起的其它所有段之上。起的其它所有段之上。起的其它所有段之上。类别类别:给各段的名字信息,连接程序将:给各段的名字信息,连接程序将类别名相类别名相同的段同的段组成一个段组用它们共同的名字作为这个组成一个段组用它们共同的名字作为这个段组的名字。类别必须用单引号括起来。段组的名字。类别必须用单引号括起来。段定义的相关约定段定义的相关约定例:例:例:例:STACKSTACK SEGMENT PARA STACK STACKSEGMENT PARA STACK STACK微机系统原理及接口技术应用微机系统原理及接口技术应用微机系统原理及接口技术应用微机系统原理及接口技术应用段说明