资源描述
汇编语言汇编语言第第 5章章5.180865.18086汇编语言基础汇编语言基础汇编语言基础汇编语言基础 5.1.15.1.1汇编语言基本语法汇编语言基本语法汇编语言基本语法汇编语言基本语法 5.1.25.1.2汇编语言语句汇编语言语句汇编语言语句汇编语言语句5.1.35.1.3伪指令语句伪指令语句伪指令语句伪指令语句5.1.45.1.4宏指令语句宏指令语句宏指令语句宏指令语句 5.25.2汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计 5.2.15.2.1顺序程序设计顺序程序设计顺序程序设计顺序程序设计5.2.25.2.2分支程序设计分支程序设计分支程序设计分支程序设计5.2.35.2.3循环程序设计循环程序设计循环程序设计循环程序设计5.2.45.2.4子程序设计子程序设计子程序设计子程序设计5.2.5DOS5.2.5DOS功能调用功能调用功能调用功能调用.汇编语言的处理过程汇编语言的处理过程汇编语言的处理过程汇编语言的处理过程:(1 1)编写汇编语言源程序,生成扩展名为)编写汇编语言源程序,生成扩展名为)编写汇编语言源程序,生成扩展名为)编写汇编语言源程序,生成扩展名为ASMASM的汇编源源文件。的汇编源源文件。的汇编源源文件。的汇编源源文件。(2 2)对汇编源程序进行编译。)对汇编源程序进行编译。)对汇编源程序进行编译。)对汇编源程序进行编译。(3 3)对目标文件进行连接)对目标文件进行连接)对目标文件进行连接)对目标文件进行连接。教学进程教学进程教学进程教学进程5.15.1 80868086汇编语言基础汇编语言基础汇编语言基础汇编语言基础.1 1)效率低(与人们描述计算过程的需要差距大);)效率低(与人们描述计算过程的需要差距大);)效率低(与人们描述计算过程的需要差距大);)效率低(与人们描述计算过程的需要差距大);2 2)机机机机器器器器硬硬硬硬件件件件的的的的具具具具体体体体结结结结构构构构联联联联系系系系过过过过于于于于紧紧紧紧密密密密在在在在一一一一种种种种结结结结构构构构的的的的机机机机器器器器上上上上开开开开发发发发的程序极难移植到另一种不同结构的机器上去。的程序极难移植到另一种不同结构的机器上去。的程序极难移植到另一种不同结构的机器上去。的程序极难移植到另一种不同结构的机器上去。教学进程教学进程教学进程教学进程5.15.1 80868086汇编语言基础汇编语言基础汇编语言基础汇编语言基础汇编语言进行程序设计的优点汇编语言进行程序设计的优点汇编语言进行程序设计的优点汇编语言进行程序设计的优点1 1)充分利用机器的硬件功能和结构特点,加快程序的执行速度,)充分利用机器的硬件功能和结构特点,加快程序的执行速度,)充分利用机器的硬件功能和结构特点,加快程序的执行速度,)充分利用机器的硬件功能和结构特点,加快程序的执行速度,减少目标程序所占用的存储空间;减少目标程序所占用的存储空间;减少目标程序所占用的存储空间;减少目标程序所占用的存储空间;2 2)用来编写实时控制程序、实时通信程序,有时也用来编制某些)用来编写实时控制程序、实时通信程序,有时也用来编制某些)用来编写实时控制程序、实时通信程序,有时也用来编制某些)用来编写实时控制程序、实时通信程序,有时也用来编制某些系统软件程序。系统软件程序。系统软件程序。系统软件程序。汇编语言进行程序设计缺点汇编语言进行程序设计缺点汇编语言进行程序设计缺点汇编语言进行程序设计缺点.教学进程教学进程教学进程教学进程宏宏宏宏指指指指令令令令语语语语句句句句是是是是由由由由编编编编程程程程者者者者按按按按照照照照一一一一定定定定的的的的规规规规则则则则来来来来定定定定义义义义的的的的一一一一种种种种较较较较“宏大宏大宏大宏大”的指令,可包括多条指令或伪指令。的指令,可包括多条指令或伪指令。的指令,可包括多条指令或伪指令。的指令,可包括多条指令或伪指令。汇编语言基本语法汇编语言基本语法汇编语言基本语法汇编语言基本语法 在在在在8086808680868086汇编中使用的语句可以分成汇编中使用的语句可以分成汇编中使用的语句可以分成汇编中使用的语句可以分成3 3 3 3种类型种类型种类型种类型这类指令能够产生目标代码,是这类指令能够产生目标代码,是这类指令能够产生目标代码,是这类指令能够产生目标代码,是CPUCPUCPUCPU可以执行的能够完成可以执行的能够完成可以执行的能够完成可以执行的能够完成特定功能的语句,主要由机器指令组成。在汇编时一条指特定功能的语句,主要由机器指令组成。在汇编时一条指特定功能的语句,主要由机器指令组成。在汇编时一条指特定功能的语句,主要由机器指令组成。在汇编时一条指令语句被翻译成对应的机器码,对应着特定的操作。令语句被翻译成对应的机器码,对应着特定的操作。令语句被翻译成对应的机器码,对应着特定的操作。令语句被翻译成对应的机器码,对应着特定的操作。指令语句:指令语句:指令语句:指令语句:伪指令语句:伪指令语句:伪指令语句:伪指令语句:伪指令语句是为汇编程序和连接程序提供一些必要控制的伪指令语句是为汇编程序和连接程序提供一些必要控制的伪指令语句是为汇编程序和连接程序提供一些必要控制的伪指令语句是为汇编程序和连接程序提供一些必要控制的管理性语句,它不产生目标代码,仅仅在汇编过程中告诉管理性语句,它不产生目标代码,仅仅在汇编过程中告诉管理性语句,它不产生目标代码,仅仅在汇编过程中告诉管理性语句,它不产生目标代码,仅仅在汇编过程中告诉汇编程序应如何汇编,并完成相应的伪操作。汇编程序应如何汇编,并完成相应的伪操作。汇编程序应如何汇编,并完成相应的伪操作。汇编程序应如何汇编,并完成相应的伪操作。宏指令语句:宏指令语句:宏指令语句:宏指令语句:5.1.15.1.1.教学进程教学进程教学进程教学进程汇编语言源程序中的语句可以由四项组成,格式如下:汇编语言源程序中的语句可以由四项组成,格式如下:汇编语言源程序中的语句可以由四项组成,格式如下:汇编语言源程序中的语句可以由四项组成,格式如下:名字名字名字名字 操作符操作符操作符操作符 操作数操作数操作数操作数 ;注释;注释;注释;注释 汇编语言语句汇编语言语句汇编语言语句汇编语言语句 5.1.25.1.2(2 2 2 2)操作符可以是指令、伪指令或宏指令的助记符。)操作符可以是指令、伪指令或宏指令的助记符。)操作符可以是指令、伪指令或宏指令的助记符。)操作符可以是指令、伪指令或宏指令的助记符。(3 3 3 3)操作数字段是操作符的操作对象。)操作数字段是操作符的操作对象。)操作数字段是操作符的操作对象。)操作数字段是操作符的操作对象。(4 4 4 4)注释字段是以)注释字段是以)注释字段是以)注释字段是以“;”开头的说明部分,可以用英文或者中文书开头的说明部分,可以用英文或者中文书开头的说明部分,可以用英文或者中文书开头的说明部分,可以用英文或者中文书写。写。写。写。(1 1 1 1)名字项是程序设计人员自己定义的符号,)名字项是程序设计人员自己定义的符号,)名字项是程序设计人员自己定义的符号,)名字项是程序设计人员自己定义的符号,用于代表内存单元的用于代表内存单元的用于代表内存单元的用于代表内存单元的 地址,表示本条语句的符号地址。一般来说,名字可以是标号和地址,表示本条语句的符号地址。一般来说,名字可以是标号和地址,表示本条语句的符号地址。一般来说,名字可以是标号和地址,表示本条语句的符号地址。一般来说,名字可以是标号和 变量,统称为标识符。变量,统称为标识符。变量,统称为标识符。变量,统称为标识符。1.1.1.1.汇编语言格式汇编语言格式汇编语言格式汇编语言格式.5.1.25.1.2汇编语言语句汇编语言语句汇编语言语句汇编语言语句 教学进程教学进程教学进程教学进程 1.1.1.1.汇编语言格式汇编语言格式汇编语言格式汇编语言格式标号标号标号标号:标号在代码段中定义,后面跟着冒号标号。:标号在代码段中定义,后面跟着冒号标号。:标号在代码段中定义,后面跟着冒号标号。:标号在代码段中定义,后面跟着冒号标号。变量变量变量变量:变量在数据段或附加数据段中定义,后面不跟冒号。:变量在数据段或附加数据段中定义,后面不跟冒号。:变量在数据段或附加数据段中定义,后面不跟冒号。:变量在数据段或附加数据段中定义,后面不跟冒号。标识符标识符标识符标识符标号和变量都有三个属性标号和变量都有三个属性标号和变量都有三个属性标号和变量都有三个属性vv段属性:标号所代表的段的值,可用段属性:标号所代表的段的值,可用段属性:标号所代表的段的值,可用段属性:标号所代表的段的值,可用SEGSEGSEGSEG算符得到。算符得到。算符得到。算符得到。vv偏移量属性:标号所代表的偏移量的值,可用偏移量属性:标号所代表的偏移量的值,可用偏移量属性:标号所代表的偏移量的值,可用偏移量属性:标号所代表的偏移量的值,可用OFFSETOFFSETOFFSETOFFSET算符得到。算符得到。算符得到。算符得到。vv类型属性:标号所代表的内存单元所存放的数据或指令代码的类型。类型属性:标号所代表的内存单元所存放的数据或指令代码的类型。类型属性:标号所代表的内存单元所存放的数据或指令代码的类型。类型属性:标号所代表的内存单元所存放的数据或指令代码的类型。vv 组成标号的字符:组成标号的字符:组成标号的字符:组成标号的字符:A A A AZ Z Z Z,a a a az z z z,0 0 0 09 9 9 9,?,$,和和和和_(_(_(_(下划线下划线下划线下划线);vv 标号的最大长度为标号的最大长度为标号的最大长度为标号的最大长度为3 3 3 3l l l l(字符个数);字符个数);字符个数);字符个数);vv 标号的第一个字符不能是标号的第一个字符不能是标号的第一个字符不能是标号的第一个字符不能是0 0 0 09 9 9 9的数字;的数字;的数字;的数字;vv 机机机机器器器器指指指指令令令令语语语语句句句句中中中中标标标标号号号号必必必必须须须须以以以以冒冒冒冒号号号号结结结结束束束束,伪伪伪伪指指指指令令令令语语语语句句句句中中中中的的的的标标标标号号号号不不不不允允允允 许有冒号。许有冒号。许有冒号。许有冒号。名字项的组成规则名字项的组成规则名字项的组成规则名字项的组成规则.算算算算术术术术操操操操作作作作符符符符有有有有+、-、*、/和和和和 MODMODMODMOD以以以以及及及及SHLSHLSHLSHL(左左左左移移移移)、SHRSHRSHRSHR(右右右右移移移移)。其中。其中。其中。其中MODMODMODMOD运算是取模运算,即除法之后所得的余数。运算是取模运算,即除法之后所得的余数。运算是取模运算,即除法之后所得的余数。运算是取模运算,即除法之后所得的余数。5.1.25.1.2汇编语言语句汇编语言语句汇编语言语句汇编语言语句 2.2.2.2.例例例例:MOVMOVMOVMOVALALALAL,10MOD310MOD310MOD310MOD3;AL=1AL=1AL=1AL=1 ADD ADD ADD ADDALALALAL,11HSHR111HSHR111HSHR111HSHR1;AL=8AL=8AL=8AL=8 MOV MOV MOV MOVAXAXAXAX,(9-1)*2(9-1)*2(9-1)*2(9-1)*2;AX=0FH AX=0FH AX=0FH AX=0FH 教学进程教学进程教学进程教学进程算术操作符算术操作符算术操作符算术操作符.逻逻逻逻辑辑辑辑操操操操作作作作符符符符包包包包括括括括ANDANDANDAND、OROROROR、XORXORXORXOR、NOTNOTNOTNOT,逻逻逻逻辑辑辑辑操操操操作作作作符符符符是是是是按按按按位位位位操操操操作作作作的的的的,只只只只能用于数字表达式。能用于数字表达式。能用于数字表达式。能用于数字表达式。5.1.25.1.2汇编语言语句汇编语言语句汇编语言语句汇编语言语句 例例例例:ANDANDANDANDDXDXDXDX,PORT_VAL ANDPORT_VAL ANDPORT_VAL ANDPORT_VAL AND;DX=DX AND DX=DX AND DX=DX AND DX=DX AND PORT_VAL ANDPORT_VAL ANDPORT_VAL ANDPORT_VAL ANDMOV MOV MOV MOV ALALALAL,00H AND 0FH00H AND 0FH00H AND 0FH00H AND 0FH;AL=00HAL=00HAL=00HAL=00HMOV MOV MOV MOV CXCXCXCX,08FH OR F8H08FH OR F8H08FH OR F8H08FH OR F8H;CX=0FFHS CX=0FFHS CX=0FFHS CX=0FFHS 教学进程教学进程教学进程教学进程3.3.3.3.逻辑操作符逻辑操作符逻辑操作符逻辑操作符.求变量或标号类型值求变量或标号类型值求变量或标号类型值求变量或标号类型值 格式:格式:格式:格式:TYPE TYPE TYPE TYPE 变量或标号变量或标号变量或标号变量或标号 功能功能功能功能:若为变量,则程序将回送该变量以字节数表示的类型:若为变量,则程序将回送该变量以字节数表示的类型:若为变量,则程序将回送该变量以字节数表示的类型:若为变量,则程序将回送该变量以字节数表示的类型:DBDBDBDB为为为为1 1 1 1,DWDWDWDW为为为为2 2 2 2,DDDDDDDD为为为为4 4 4 4,DQDQDQDQ为为为为8 8 8 8,DTDTDTDT为为为为10101010。若为标号,则程序将回送代表该标号类型的数值若为标号,则程序将回送代表该标号类型的数值若为标号,则程序将回送代表该标号类型的数值若为标号,则程序将回送代表该标号类型的数值:NEARNEARNEARNEAR 为为为为-1-1-1-1,FRAFRAFRAFRA为为为为-2-2-2-2。5.1.25.1.2汇编语言语句汇编语言语句汇编语言语句汇编语言语句 例例例例:ARRAY ARRAY ARRAY ARRAYDW 1DW 1DW 1DW 1,2 2 2 2,3 3 3 3 MOV MOV MOV MOV AX AX AX AX,05H05H05H05H ADD ADD ADD ADD AXAXAXAX,TYPE ARRAYTYPE ARRAYTYPE ARRAYTYPE ARRAY;AX=5+2=7 AX=5+2=7 AX=5+2=7 AX=5+2=7 教学进程教学进程教学进程教学进程4.4.4.4.数值回送操作符数值回送操作符数值回送操作符数值回送操作符.格式:格式:格式:格式:OFFSETOFFSETOFFSETOFFSET变量或标号变量或标号变量或标号变量或标号 功能:返回变量或标号所在段的段内偏移地功能:返回变量或标号所在段的段内偏移地功能:返回变量或标号所在段的段内偏移地功能:返回变量或标号所在段的段内偏移地 例例例例:MOV AX OFFSET LABEL:MOV AX OFFSET LABEL:MOV AX OFFSET LABEL:MOV AX OFFSET LABEL;AX=0001H AX=0001H AX=0001H AX=0001H 5.1.25.1.2汇编语言语句汇编语言语句汇编语言语句汇编语言语句 取段基地址取段基地址取段基地址取段基地址格式:格式:格式:格式:SEG SEG SEG SEG 变量或标号变量或标号变量或标号变量或标号功能:返回变量或标号所在段的段地址功能:返回变量或标号所在段的段地址功能:返回变量或标号所在段的段地址功能:返回变量或标号所在段的段地址 例例例例:MOV DX SEG LABELMOV DX SEG LABELMOV DX SEG LABELMOV DX SEG LABEL;AX=1000H AX=1000H AX=1000H AX=1000H 教学进程教学进程教学进程教学进程4.4.4.4.数值回送操作符数值回送操作符数值回送操作符数值回送操作符 取地址的偏移量取地址的偏移量取地址的偏移量取地址的偏移量.格式:格式:格式:格式:LENGTH LENGTH LENGTH LENGTH 变量变量变量变量 功功功功能能能能:如如如如果果果果变变变变量量量量是是是是用用用用DUPDUPDUPDUP说说说说明明明明,则则则则返返返返回回回回DUPDUPDUPDUP定定定定义义义义变变变变量量量量的的的的重重重重 复次数,否则,返回值为复次数,否则,返回值为复次数,否则,返回值为复次数,否则,返回值为1 1 1 1。取变量字节数取变量字节数取变量字节数取变量字节数格式:格式:格式:格式:SIZE BIANL1SIZE BIANL1SIZE BIANL1SIZE BIANL1功能:返回变量的字节数,等于功能:返回变量的字节数,等于功能:返回变量的字节数,等于功能:返回变量的字节数,等于LENGTHLENGTHLENGTHLENGTH与与与与TYPETYPETYPETYPE的乘积。的乘积。的乘积。的乘积。例例例例:BUFFER1 DB 10 DUP BUFFER1 DB 10 DUP BUFFER1 DB 10 DUP BUFFER1 DB 10 DUP(10H10H10H10H)BUFFER2 DW 20 DUP BUFFER2 DW 20 DUP BUFFER2 DW 20 DUP BUFFER2 DW 20 DUP(20H20H20H20H)MOV AX MOV AX MOV AX MOV AX,LENGTH BUFFER1LENGTH BUFFER1LENGTH BUFFER1LENGTH BUFFER1;AX=10AX=10AX=10AX=10 MOV BX MOV BX MOV BX MOV BX,SIZE BUFFER2 SIZE BUFFER2 SIZE BUFFER2 SIZE BUFFER2;BX=20 BX=20 BX=20 BX=20 教学进程教学进程教学进程教学进程5.1.25.1.2汇编语言语句汇编语言语句汇编语言语句汇编语言语句 4.4.4.4.数值回送操作符数值回送操作符数值回送操作符数值回送操作符 取变量单元数取变量单元数取变量单元数取变量单元数.5.1.25.1.2 汇编语言语句汇编语言语句汇编语言语句汇编语言语句 PTRPTR操作符操作符操作符操作符 格式:类型格式:类型格式:类型格式:类型 PTR PTR PTR PTR 符号名符号名符号名符号名功能:该操作符用于指定操作数的类型。功能:该操作符用于指定操作数的类型。功能:该操作符用于指定操作数的类型。功能:该操作符用于指定操作数的类型。属性操作符属性操作符属性操作符属性操作符教学进程教学进程教学进程教学进程5.5.5.5.THISTHISTHISTHIS操作符操作符操作符操作符格式:格式:格式:格式:THIS THIS THIS THIS 类型类型类型类型功能:把它后面指定的类型或距离属性赋给当前的变量、标号或定功能:把它后面指定的类型或距离属性赋给当前的变量、标号或定功能:把它后面指定的类型或距离属性赋给当前的变量、标号或定功能:把它后面指定的类型或距离属性赋给当前的变量、标号或定 制表达式。制表达式。制表达式。制表达式。段操作符段操作符段操作符段操作符格式:段寄存器名:地址表达式格式:段寄存器名:地址表达式格式:段寄存器名:地址表达式格式:段寄存器名:地址表达式 功能:用来表示变量或地址表达式的段属性。功能:用来表示变量或地址表达式的段属性。功能:用来表示变量或地址表达式的段属性。功能:用来表示变量或地址表达式的段属性。.格式:格式:格式:格式:SHORT SHORT SHORT SHORT 标号标号标号标号 功能:用来修饰转移指令的目标地址的属性,偏移量为功能:用来修饰转移指令的目标地址的属性,偏移量为功能:用来修饰转移指令的目标地址的属性,偏移量为功能:用来修饰转移指令的目标地址的属性,偏移量为8 8 8 8位。位。位。位。分类运算符分类运算符分类运算符分类运算符格式:格式:格式:格式:HIGH HIGH HIGH HIGH 表达式表达式表达式表达式 LOW LOW LOW LOW 表达式表达式表达式表达式 功能:从表达式种分离出高字节、低字节。功能:从表达式种分离出高字节、低字节。功能:从表达式种分离出高字节、低字节。功能:从表达式种分离出高字节、低字节。运算符运算符运算符运算符:EQEQEQEQ(相等)、(相等)、(相等)、(相等)、NENENENE(不等于)、(不等于)、(不等于)、(不等于)、LTLTLTLT(小于)、(小于)、(小于)、(小于)、GTGTGTGT(大于)、(大于)、(大于)、(大于)、LELELELE(小于或等于)、(小于或等于)、(小于或等于)、(小于或等于)、GEGEGEGE(大于或等于),当关系成立时,(大于或等于),当关系成立时,(大于或等于),当关系成立时,(大于或等于),当关系成立时,运算结果为运算结果为运算结果为运算结果为1 1 1 1(FFHFFHFFHFFH或或或或FFFFHFFFFHFFFFHFFFFH),否则为否则为否则为否则为0 0 0 0。格式:表达式格式:表达式格式:表达式格式:表达式1 1 1 1 关系运算符关系运算符关系运算符关系运算符 表达式表达式表达式表达式2 2 2 2 SHORTSHORTSHORTSHORT操作符操作符操作符操作符教学进程教学进程教学进程教学进程5.1.25.1.2汇编语言语句汇编语言语句汇编语言语句汇编语言语句 属性操作符属性操作符属性操作符属性操作符5.5.5.5.6.6.6.6.关系运算符关系运算符关系运算符关系运算符.优先级优先级运算符(操作符)运算符(操作符)高高低低括号中的表达式括号中的表达式LENGTH,SIZE,WIDTH,MASKPRT,OFFSET,SEG,TYPE,THIS,段前缀,段前缀HIGH,LOW*,/,MOD,SHL,SHR+,-EQ,NE,LT,TE,GT,GENOTOR,XORSHORT5.1.25.1.2 汇编语言语句汇编语言语句汇编语言语句汇编语言语句 运算的优先级别运算的优先级别运算的优先级别运算的优先级别教学进程教学进程教学进程教学进程7.7.7.7.EQU EQU EQU EQU 等价伪指令等价伪指令等价伪指令等价伪指令 格式:符号名格式:符号名格式:符号名格式:符号名 EQU EQU EQU EQU 表达式表达式表达式表达式 功功功功能能能能:用用用用来来来来定定定定义义义义一一一一个个个个符符符符号号号号,用用用用该该该该符符符符号号号号代代代代表表表表机机机机器器器器指指指指令令令令助助助助记记记记符符符符、伪伪伪伪 指令助记符、寄存器名字、各种运算符号、常数等。指令助记符、寄存器名字、各种运算符号、常数等。指令助记符、寄存器名字、各种运算符号、常数等。指令助记符、寄存器名字、各种运算符号、常数等。伪指令语句伪指令语句伪指令语句伪指令语句例例例例:VALVALVALVALEQUEQUEQUEQU100100100100 JIA JIA JIA JIAEQUEQUEQUEQUADDADDADDADD ADR ADR ADR ADR EQU EQU EQU EQUSI+BX+1000HSI+BX+1000HSI+BX+1000HSI+BX+1000H MOV MOV MOV MOV ALALALAL,VALVALVALVAL JIA JIA JIA JIAALALALAL,10101010 MOV MOV MOV MOV ADR ADR ADR ADR,AL AL AL AL 1.1.1.1.符号定义伪指令符号定义伪指令符号定义伪指令符号定义伪指令教学进程教学进程教学进程教学进程5.1.35.1.3.等号伪指令等号伪指令等号伪指令等号伪指令格式:符号名表达式格式:符号名表达式格式:符号名表达式格式:符号名表达式 功功功功能能能能:等等等等号号号号伪伪伪伪指指指指令令令令用用用用来来来来定定定定义义义义一一一一个个个个符符符符号号号号,用用用用该该该该符符符符号号号号代代代代表表表表表表表表达达达达式式式式、常数等。常数等。常数等。常数等。5.1.35.1.3教学进程教学进程教学进程教学进程伪指令语句伪指令语句伪指令语句伪指令语句(续续续续)1.1.1.1.符号定义伪指令符号定义伪指令符号定义伪指令符号定义伪指令 解除符号定义伪指令解除符号定义伪指令解除符号定义伪指令解除符号定义伪指令格式:格式:格式:格式:PURGEPURGEPURGEPURGE 符号符号符号符号1 1 1 1,符号,符号,符号,符号2 2 2 2,功能:用来解除之前引用符号的定义。功能:用来解除之前引用符号的定义。功能:用来解除之前引用符号的定义。功能:用来解除之前引用符号的定义。.数据定义伪指令有数据定义伪指令有数据定义伪指令有数据定义伪指令有五种五种五种五种:DBDBDBDB、DWDWDWDW、DDDDDDDD、DQDQDQDQ、DTDTDTDT和和和和DUPDUPDUPDUP。格式格式格式格式:变量名变量名变量名变量名 DB DB DB DB 表达式;定义字节表达式;定义字节表达式;定义字节表达式;定义字节变量名变量名变量名变量名 DW DW DW DW 表达式;定义字表达式;定义字表达式;定义字表达式;定义字变量名变量名变量名变量名 DD DD DD DD 表达式;定义双字表达式;定义双字表达式;定义双字表达式;定义双字变量名变量名变量名变量名 DQ DQ DQ DQ 表达式;定义表达式;定义表达式;定义表达式;定义8 8 8 8个字节个字节个字节个字节变量名变量名变量名变量名 DT DT DT DT 表达式;定义表达式;定义表达式;定义表达式;定义10101010个字节个字节个字节个字节 复制次数复制次数复制次数复制次数 DUP DUP DUP DUP 表达式表达式表达式表达式 功功功功能能能能:其其其其中中中中,DTDTDTDT伪伪伪伪操操操操作作作作指指指指令令令令用用用用来来来来定定定定义义义义10101010个个个个字字字字节节节节,其其其其后后后后的的的的每每每每个个个个操操操操作作作作数数数数占占占占有有有有10101010个个个个字字字字节节节节,形形形形成成成成压压压压缩缩缩缩的的的的BCDBCDBCDBCD码码码码;DUPDUPDUPDUP指指指指令令令令可可可可以以以以为为为为若若若若干干干干重重重重复复复复数数数数据据据据分配内存单元。分配内存单元。分配内存单元。分配内存单元。5.1.35.1.3伪指令语句伪指令语句伪指令语句伪指令语句数据定义伪指令数据定义伪指令数据定义伪指令数据定义伪指令 教学进程教学进程教学进程教学进程2.2.2.2.格式:格式:格式:格式:5.1.35.1.3伪指令语句伪指令语句伪指令语句伪指令语句段定义伪指令段定义伪指令段定义伪指令段定义伪指令 教学进程教学进程教学进程教学进程3.3.3.3.段名段名段名段名 SEGMENT SEGMENT SEGMENT SEGMENT段名段名段名段名 ENDS ENDS ENDS ENDS段定义时,必须将段和段寄存器自之间建立对应关系,可以用段定义时,必须将段和段寄存器自之间建立对应关系,可以用段定义时,必须将段和段寄存器自之间建立对应关系,可以用段定义时,必须将段和段寄存器自之间建立对应关系,可以用ASSUMEASSUMEASSUMEASSUME伪操作来实现,其格式为:伪操作来实现,其格式为:伪操作来实现,其格式为:伪操作来实现,其格式为:ASSUME ASSUME ASSUME ASSUME 段寄存器名:段名段寄存器名:段名段寄存器名:段名段寄存器名:段名1111,段名,段名,段名,段名2 2 2 2 .例:例:例:例:*data_seg1segmentdata_seg1segment;定义数据段定义数据段定义数据段定义数据段data_seg1endsdata_seg1ends*code_segsegmentcode_segsegment;定义代码段定义代码段定义代码段定义代码段 assumeassumedsds:data_seg1data_seg1,eses:data_seg1data_seg1assumeassumecscs:code_segcode_segstartstart:;程程程程序序序序执执执执行行行行的的的的起起起起始始始始地地地地址址址址movmovaxax,data_seg1data_seg1;数据段地址数据段地址数据段地址数据段地址 movmovdsds,axax;存入存入存入存入DSDS寄存器寄存器寄存器寄存器movmovaxax,data_seg1data_seg1;附加段地址附加段地址附加段地址附加段地址movmoveses,axax;存入存入存入存入ESES寄存器寄存器寄存器寄存器 code_segendscode_segends;代码段结束代码段结束代码段结束代码段结束*endendstartstart5.1.35.1.3伪指令语句伪指令语句伪指令语句伪指令语句教学进程教学进程教学进程教学进程段定义伪指令举例段定义伪指令举例段定义伪指令举例段定义伪指令举例.格式:格式:格式:格式:功功功功能能能能:完完完完成成成成过过过过程程程程定定定定义义义义,在在在在过过过过程程程程体体体体中实现过程的操作功能。中实现过程的操作功能。中实现过程的操作功能。中实现过程的操作功能。过程名过程名PROC过程体过程体RET过程名过程名ENDP5.1.35.1.3伪指令语句伪指令语句伪指令语句伪指令语句过程定义伪指令过程定义伪指令过程定义伪指令过程定义伪指令教学进程教学进程教学进程教学进程4.4.4.4.例:例:CODESEGMENTAPRCPROCNEARADDAX,BXRETAPRCENDPSTART:MOVAX,CXCALLAPOCCODEENDSENDSTART.条件汇编有多种伪操作指令:条件汇编有多种伪操作指令:条件汇编有多种伪操作指令:条件汇编有多种伪操作指令:(1 1)IFIF表达式表达式表达式表达式功能:表达式为功能:表达式为功能:表达式为功能:表达式为1 1,汇编程序段,汇编程序段,汇编程序段,汇编程序段1 1,否则跳过。,否则跳过。,否则跳过。,否则跳过。(2 2)IFEIFE表达式表达式表达式表达式功能:表达式为功能:表达式为功能:表达式为功能:表达式为0 0,汇编程序段,汇编程序段,汇编程序段,汇编程序段1 1,否则跳过。,否则跳过。,否则跳过。,否则跳过。(3 3)IFBIFB参数参数参数参数功能:参数为空格,汇编程序段功能:参数为空格,汇编程序段功能:参数为空格,汇编程序段功能:参数为空格,汇编程序段1 1,否则跳过。,否则跳过。,否则跳过。,否则跳过。5.1.35.1.3伪指令语句伪指令语句伪指令语句伪指令语句格式:格式:格式:格式:IFIF表达式表达式表达式表达式程序段程序段程序段程序段1 1ELSEELSE 程序段程序段程序段程序段2 2ENDIFENDIF5.5.5.5.教学进程教学进程教学进程教学进程条件汇编伪指令条件汇编伪指令条件汇编伪指令条件汇编伪指令.(4 4)IFNBIFNB参数参数参数参数功能:参数不为空格,汇编程序段功能:参数不为空格,汇编程序段功能:参数不为空格,汇编程序段功能:参数不为空格,汇编程序段1 1,否则跳过。,否则跳过。,否则跳过。,否则跳过。(5 5)IFIDNIFIDN参数参数参数参数1 1,参数,参数,参数,参数2 2 功能:字符串参数功能:字符串参数功能:字符串参数功能:字符串参数1 1与字符串参数与字符串参数与字符串参数与字符串参数2 2相同,汇编程序相同,汇编程序相同,汇编程序相同,汇编程序1 1,否则跳过。,否则跳过。,否则跳过。,否则跳过。5.1.35.1.3伪指令语句伪指令语句伪指令语句伪指令语句例:例:例:例:AAAAEQUEQU10H10HIFIFAA-10HAA-10HMOVMOVCLCL,4 4SALSALALAL,CLCLELSEELSEMOVMOVCLCL,4 4SARSARALAL,CLCLENDIFENDIF教学进程教学进程教学进程教学进程条件汇编有多种伪操作指令(续)条件汇编有多种伪操作指令(续)条件汇编有多种伪操作指令(续)条件汇编有多种伪操作指令(续)5.5.5.5.条件汇编伪指令条件汇编伪指令条件汇编伪指令条件汇编伪指令.格式:宏指令名格式:宏指令名格式:宏指令名格式:宏指令名 MACROMACRO形式参数形式参数形式参数形式参数1 1,形式参数,形式参数,形式参数,形式参数2 2,ENDMENDM 其中,其中,其中,其中,MACROMACRO和和和和ENDMENDM是一对伪操作。是一对伪操作。是一对伪操作。是一对伪操作。宏指令语句宏指令语句宏指令语句宏指令语句1.1.1.1.宏指令的定义宏指令的定义宏指令的定义宏指令的定义教学进程教学进程教学进程教学进程5.1.45.1.4.5.1.45.1.4 宏指令语句宏指令语句宏指令语句宏指令语句 MINCLMINCL,SISI,DIDI;把由;把由;把由;把由SISI和和和和DIDI间接寻址的两个内存单元中间接寻址的两个内存单元中间接寻址的两个内存单元中间接寻址的两个内存单元中;不带符号数中小的送入;不带符号数中小的送入;不带符号数中小的送入;不带符号数中小的送入CLCL汇编后展开:汇编后展开:汇编后展开:汇编后展开:PUSHPUSH AXAXMOVMOVALAL,SISI;实参;实参;实参;实参SISI替换形参替换形参替换形参替换形参SR1SR1CMPCMPALAL,DIDI;实参;实参;实参;实参DIDI替换形参替换形参替换形参替换形参SR2SR2JNBJNB?00?00;符合地址;符合地址;符合地址;符合地址ADDRADDR被被被被?00?00替换替换替换替换MOVMOVALAL,DIDI?00?00:MOVMOVCLCL,ALAL;实参;实参;实参;实参CLCL替换形参替换形参替换形参替换形参DESDESPOPPOPAXAX号代表宏展开的语句。号代表宏展开的语句。号代表宏展开的语句。号代表宏展开的语句。教学进程教学进程教学进程教学进程宏调用宏调用宏调用宏调用举举举举例例例例.5.1.45.1.4 宏指令语句宏指令语句宏指令语句宏指令语句 格式:格式:格式:格式:LOCALLOCAL 符号地址符号地址符号地址符号地址1 1,符号地址,符号地址,符号地址,符号地址2 2,这些符号地址在宏展开时,由汇编程序重新命名。这些符号地址在宏展开时,由汇编程序重新命名。这些符号地址在宏展开时,由汇编程序重新命名。这些符号地址在宏展开时,由汇编程序重新命名。局域符号定义局域符号定义局域符号定义局域符号定义 例:例:例:例:宏定义可以无参数宏定义可以无参数宏定义可以无参数宏定义可以无参数宏定义:宏定义:宏定义:宏定义:SAVEREG SAVEREG SAVEREG SAVEREG MACROMACROMACROMACROPUSH PUSH PUSH PUSH AXAXAXAXPUSHPUSHPUSHPUSH BX BX BX BXPUSHPUSHPUSHPUSH CX CX CX CXPUSHPUSHPUSHPUSH DX DX DX DXENDMENDMENDMENDM宏调用:宏调用:宏调用:宏调用:SAVEREGSAVEREGSAVEREGSAVEREG3.3.3.3.宏指令举例宏指令举例宏指令举例宏指令举例 教学进程教学进程教学进程教学进程2.2.2.2.例:宏定义参数可以时操作码例:宏定义参数可以时操作码例:宏定义参数可以时操作码例:宏定义参数可以时操作码宏定义:宏定义:宏定义:宏定义:REGINC REGINC REGINC REGINCM
展开阅读全文