汇编语言源程序格式.ppt
《汇编语言源程序格式.ppt》由会员分享,可在线阅读,更多相关《汇编语言源程序格式.ppt(98页珍藏版)》请在咨信网上搜索。
1、第第2 2章章 汇编语言程序格式汇编语言程序格式 第第2章章 汇编语言程序格式汇编语言程序格式2.1 汇编语言语句格式汇编语言语句格式2.2 伪指令伪指令2.3 汇编语言源程序基本框架汇编语言源程序基本框架第第2 2章章 汇编语言程序格式汇编语言程序格式 2.1 汇编语言语句格式汇编语言语句格式同其他程序设计语言一样,汇编语言的翻译器同其他程序设计语言一样,汇编语言的翻译器(汇编程序)对源程序有严格的格式要求。这样,(汇编程序)对源程序有严格的格式要求。这样,汇编程序才能确切翻译源程序,形成功能等价的汇编程序才能确切翻译源程序,形成功能等价的机器指令(目标代码),连接后能直接运行。汇机器指令(
2、目标代码),连接后能直接运行。汇编语言程序格式就是汇编语言必须遵循的语法规编语言程序格式就是汇编语言必须遵循的语法规则。则。第第2 2章章 汇编语言程序格式汇编语言程序格式 2.1.1 汇编语言语句类型汇编语言语句类型 汇编语言源程序由语句序列构成,汇编语言程序中的语句可以分为汇编语言源程序由语句序列构成,汇编语言程序中的语句可以分为指令语句、伪指令语句和宏指令语句三种。指令语句、伪指令语句和宏指令语句三种。(1)指令语句:对应于指令语句:对应于CPU指令系统中的一条机器指令,由指令系统中的一条机器指令,由CPU执行,能完成一定操作功能,能够翻译成机器代码的语句。执行,能完成一定操作功能,能够
3、翻译成机器代码的语句。(2)伪指令语句:无对应的机器指令,不由伪指令语句:无对应的机器指令,不由CPU执行,只为汇编执行,只为汇编程序在翻译汇编语言源程序时提供有关信息,并不翻译成机器代码程序在翻译汇编语言源程序时提供有关信息,并不翻译成机器代码的语句。的语句。(3)宏指令语句:就是由若干条指令语句形成的语句,一条宏指宏指令语句:就是由若干条指令语句形成的语句,一条宏指令语句的功能相当于若干条指令语句的功能,详见第令语句的功能相当于若干条指令语句的功能,详见第5章。章。第第2 2章章 汇编语言程序格式汇编语言程序格式 2.1.2 汇编语言语句格式汇编语言语句格式汇编语言源程序中的每个语句可以由
4、汇编语言源程序中的每个语句可以由4项组成,格式如下:项组成,格式如下:名字:名字:操作码操作码 操作数操作数,操作数,操作数;注释;注释其中,名字项是一个符号项。其中,名字项是一个符号项。操作码项是一个操作码的助记符,它可以是指令、伪指令或宏指令操作码项是一个操作码的助记符,它可以是指令、伪指令或宏指令名。名。操作数项由一个或多个表达式组成,它提供为执行所要求的操作而操作数项由一个或多个表达式组成,它提供为执行所要求的操作而需要的信息。需要的信息。注释项用来说明程序或语句的功能。注释项用来说明程序或语句的功能。“;”为识别注释项的开始。为识别注释项的开始。带方括号的项是可选项,需要根据具体情况
5、而定。带方括号的项是可选项,需要根据具体情况而定。汇编语言源程序中的每条语句一般占一行,各项之间必须用空格或汇编语言源程序中的每条语句一般占一行,各项之间必须用空格或制表符作为分隔符,操作数之间用逗号分隔。制表符作为分隔符,操作数之间用逗号分隔。第第2 2章章 汇编语言程序格式汇编语言程序格式 1 1名字项名字项名字项名字项名字是用户按照一定规则定义的标识符,可由下列符号组成:名字是用户按照一定规则定义的标识符,可由下列符号组成:字母字母 AZ、az数字数字 09 特殊字符特殊字符?、.、_、$数字不能作名字项的第一个字符。而圆点仅能用作第一个字符,可数字不能作名字项的第一个字符。而圆点仅能用
6、作第一个字符,可以用很多字符来说明名字,但只有前面的以用很多字符来说明名字,但只有前面的31个字符能被汇编程序所个字符能被汇编程序所识别。为了便于记忆,名字的定义应该能够见名知义,如用识别。为了便于记忆,名字的定义应该能够见名知义,如用BUFFER表示缓冲区、表示缓冲区、SUM表示累加和等。表示累加和等。名字有两种形式:标号或变量。指令语句中的名字通常用标号表示,名字有两种形式:标号或变量。指令语句中的名字通常用标号表示,而伪指令语句中的名字通常用变量名、段名和过程名表示,多数情而伪指令语句中的名字通常用变量名、段名和过程名表示,多数情况下用变量名表示。况下用变量名表示。第第2 2章章 汇编语
7、言程序格式汇编语言程序格式(1)标号标号标号在代码段中定义,也可以用标号在代码段中定义,也可以用EQU或或LABEL伪指令来定义,标号与其所代表的指令之间用冒伪指令来定义,标号与其所代表的指令之间用冒号分开,用来代表一条指令所在单元的地址。标号分开,用来代表一条指令所在单元的地址。标号也可以作为过程名定义。标号经常在转移指令号也可以作为过程名定义。标号经常在转移指令的操作数字段出现,用以表示转向的目标地址。的操作数字段出现,用以表示转向的目标地址。标号在命名时,应尽量取有意义的字符,以便程标号在命名时,应尽量取有意义的字符,以便程序的阅读和理解。序的阅读和理解。第第2 2章章 汇编语言程序格式
8、汇编语言程序格式 标号有标号有3种属性:段属性、偏移属性和类型属性。种属性:段属性、偏移属性和类型属性。段属性:标号所代表指令单元的段起始地址,此值必须段属性:标号所代表指令单元的段起始地址,此值必须在一个段寄存器中,而标号的段则总是在在一个段寄存器中,而标号的段则总是在CS寄存器中。寄存器中。偏移属性:标号所代表指令单元的段内偏移地址,标号偏移属性:标号所代表指令单元的段内偏移地址,标号的偏移地址是从段起始地址到定义标号的位置之间的字的偏移地址是从段起始地址到定义标号的位置之间的字节数。对于节数。对于16位段是位段是16位无符号数。位无符号数。类型属性:用来指出标号是在本段内引用还是在其他段
9、类型属性:用来指出标号是在本段内引用还是在其他段中引用的。如是在段内引用的,则称为中引用的。如是在段内引用的,则称为NEAR,转移源和,转移源和转移目标在同一个代码段中,转移时,只改变转移目标在同一个代码段中,转移时,只改变IP值,不值,不改变改变CS值;如在段外引用,则称为值;如在段外引用,则称为FAR,转移源和转移,转移源和转移目标在不同的代码段中,转移时,既改变目标在不同的代码段中,转移时,既改变IP值,又改变值,又改变CS值。值。第第2 2章章 汇编语言程序格式汇编语言程序格式(2)变量变量 变量在除代码段以外的其它段中定义,后面变量在除代码段以外的其它段中定义,后面不跟冒号。它也可以
10、用不跟冒号。它也可以用EQU或或LABEL伪指令来伪指令来定义。变量是一个可以存放数据的存储单元的名定义。变量是一个可以存放数据的存储单元的名字,即存放数据的存储单元的地址符号名。变量字,即存放数据的存储单元的地址符号名。变量用用DB、DW、DD定义,此时变量名仅表示该数定义,此时变量名仅表示该数据区或存储区的第一个数据单元的首地址。变量据区或存储区的第一个数据单元的首地址。变量经常在操作数字段出现。经常在操作数字段出现。第第2 2章章 汇编语言程序格式汇编语言程序格式 变量也有变量也有3种属性:段属性、偏移属性和类型属性。种属性:段属性、偏移属性和类型属性。段属性:段属性:段属性:段属性:变
11、量所代表数据单元的段起始地址,此值必须变量所代表数据单元的段起始地址,此值必须在一个段寄存器中(在一个段寄存器中(DS、ES或或SS中)。中)。偏移属性:偏移属性:偏移属性:偏移属性:变量所代表数据单元的段内偏移地址,变量变量所代表数据单元的段内偏移地址,变量的偏移地址是从段的起始地址到定义变量的位置之间的的偏移地址是从段的起始地址到定义变量的位置之间的字节数。对于字节数。对于16位段是位段是16位无符号数。在当前段内给出位无符号数。在当前段内给出变量的偏移值等于当前地址计数器的值,当前地址计数变量的偏移值等于当前地址计数器的值,当前地址计数器的值可以用器的值可以用$来表示。来表示。类型属性:
12、类型属性:类型属性:类型属性:变量的类型属性定义该变量所保留的字节数,变量的类型属性定义该变量所保留的字节数,如如BYTE(1个字节长),个字节长),WORD(2个字节长),个字节长),DWORD(4个字节长)。这一点,将在数据定义伪指令中说明。个字节长)。这一点,将在数据定义伪指令中说明。在同一个程序中,同样的标号或变量的定义只允许出现在同一个程序中,同样的标号或变量的定义只允许出现一次,否则汇编程序会指示出错。一次,否则汇编程序会指示出错。第第2 2章章 汇编语言程序格式汇编语言程序格式 2操作码项操作码项操作码项可以是指令、伪指令或宏指令的助记符。助记操作码项可以是指令、伪指令或宏指令的
13、助记符。助记符表示指令语句的功能,如符表示指令语句的功能,如INC、MOV等,其符号与意等,其符号与意义是由系统定义的,编程时必须照写不误,既不能多写,义是由系统定义的,编程时必须照写不误,既不能多写,也不能少写,如果指令带有前缀(如也不能少写,如果指令带有前缀(如REP、REPE等),等),则指令前缀和指令助记符要用空格分开。则指令前缀和指令助记符要用空格分开。对于指令,汇编程序将其翻译为机器语言指令。对于伪对于指令,汇编程序将其翻译为机器语言指令。对于伪指令,汇编程序将根据其所要求的功能进行处理。对于指令,汇编程序将根据其所要求的功能进行处理。对于宏指令,则将根据其定义展开。在第宏指令,则
14、将根据其定义展开。在第5章中将会专门讨论。章中将会专门讨论。第第2 2章章 汇编语言程序格式汇编语言程序格式 3操作数项操作数项 指令中的操作数用来指定参与操作的数据。对于指令中的操作数用来指定参与操作的数据。对于一般指令,可以有一个或两个操作数,也可以没一般指令,可以有一个或两个操作数,也可以没有操作数;对于伪指令和宏指令,可以根据需要有操作数;对于伪指令和宏指令,可以根据需要有多个操作数。操作数多于一个时,各操作数之有多个操作数。操作数多于一个时,各操作数之间用逗号分开。间用逗号分开。第第2 2章章 汇编语言程序格式汇编语言程序格式 操作数可以是常数、寄存器、标号、变量或由表操作数可以是常
15、数、寄存器、标号、变量或由表达式组成。在这里,将专门对表达式加以说明。达式组成。在这里,将专门对表达式加以说明。表达式是常数、标号、变量、寄存器与一些操作表达式是常数、标号、变量、寄存器与一些操作符相组合的序列,可以有数字表达式和地址表达符相组合的序列,可以有数字表达式和地址表达式两种。数字表达式由汇编程序根据优先级规则式两种。数字表达式由汇编程序根据优先级规则计算得到一个常数值。地址表达式由汇编程序计计算得到一个常数值。地址表达式由汇编程序计算得到一个地址或一个常数值(地址间的距离长算得到一个地址或一个常数值(地址间的距离长度)。度)。组成表达式的操作符有算术、逻辑、关系、数值组成表达式的操
16、作符有算术、逻辑、关系、数值返回、属性操作符。返回、属性操作符。第第2 2章章 汇编语言程序格式汇编语言程序格式 常用的操作符常用的操作符 算术操作符算术操作符逻辑与移位运算符逻辑与移位运算符关系运算符关系运算符 数值返回运算符数值返回运算符 属性运算符属性运算符 第第2 2章章 汇编语言程序格式汇编语言程序格式(1)算术操作符算术操作符算术运算符包括:算术运算符包括:+、*、/、MOD(取余)。(取余)。运算符运算符MOD是作除法操作,取余数,如是作除法操作,取余数,如10 MOD 3=1。算术运算符可以用于数字表达式或地址表达式中。但当算术运算符可以用于数字表达式或地址表达式中。但当它用于
17、地址表达式时,只有当其结果有明确的物理意它用于地址表达式时,只有当其结果有明确的物理意义时才是有效的结果,例如,两个地址相乘或相除是义时才是有效的结果,例如,两个地址相乘或相除是无意义的。在地址表达式中,可以用无意义的。在地址表达式中,可以用+或或-,但也必须,但也必须注意其物理意义,例如把两个不同段的地址相加也是注意其物理意义,例如把两个不同段的地址相加也是无意义的。经常使用的方法是无意义的。经常使用的方法是“地址地址常量常量”来描述来描述指针的移动,例如,指针的移动,例如,SUM+1是指是指SUM字节单元的下字节单元的下一个字节单元的地址(注意:不是指一个字节单元的地址(注意:不是指SUM
18、单元的内单元的内容加容加1),而),而SUM-1则是指则是指SUM字节单元的前一个字字节单元的前一个字节单元的地址。节单元的地址。第第2 2章章 汇编语言程序格式汇编语言程序格式【例例2.1】将首地址为将首地址为ARRAY的字数组的第的字数组的第6个字传送到个字传送到DX寄存器中。寄存器中。MOV DX,ARRAY+(6-1)*2【例例2.2】数组数组ARR定义如下,试写出把数组长度定义如下,试写出把数组长度(字数字数)存入存入CX寄存器的指令。寄存器的指令。ARR DW 1,2,3,4,5,6,7ARREND DW?其中,其中,ARREND是为计算数组长度而建立的符号地址,是为计算数组长度而
19、建立的符号地址,则指令如下:则指令如下:MOV CX,(ARREND-ARR)/2汇编程序在汇编期间将计算出表达式的值而形成指令:汇编程序在汇编期间将计算出表达式的值而形成指令:MOV CX,7第第2 2章章 汇编语言程序格式汇编语言程序格式(2)逻辑与移位运算符逻辑与移位运算符逻辑运算符逻辑运算符逻辑运算符包括:逻辑运算符包括:AND(逻辑与)、(逻辑与)、OR(逻辑或)、(逻辑或)、XOR(逻辑异或)、(逻辑异或)、NOT(逻辑非)。(逻辑非)。逻辑运算符是按位操作的,它的操作数只能是数字,且逻辑运算符是按位操作的,它的操作数只能是数字,且结果也为数字。逻辑运算符只能用在数字表达式中,不结
20、果也为数字。逻辑运算符只能用在数字表达式中,不能用在地址表达式中。逻辑运算符和逻辑运算指令是有能用在地址表达式中。逻辑运算符和逻辑运算指令是有区别的,逻辑运算符的功能在汇编阶段完成,逻辑运算区别的,逻辑运算符的功能在汇编阶段完成,逻辑运算指令的功能是在程序执行阶段完成。要注意指令的功能是在程序执行阶段完成。要注意AND、OR、XOR、NOT不是助记符,而是运算符。不是助记符,而是运算符。第第2 2章章 汇编语言程序格式汇编语言程序格式【例例2.3】AND AL,78H AND 0FH等价于:等价于:AND AL,08H【例例2.4】设设VALUE是字节型变量,分析下面这条语句执是字节型变量,分
21、析下面这条语句执行完行完AL寄存器的内容。寄存器的内容。MOV AL,VALUE AND 01H在汇编后,该语句的源操作数(在汇编后,该语句的源操作数(VALUE AND 01H)可能)可能产生两个结果之一:当产生两个结果之一:当VALUE值的值的D0位为位为1时,时,VALUE和和01与操作的结果为与操作的结果为01H,则该语句变成,则该语句变成MOV AL,01H;当;当VALUE值的值的D0位为位为0时,时,VALUE和和01与操作的与操作的结果为结果为00H,则该语句变成,则该语句变成MOV AL,00H。因此,执行。因此,执行后后AL寄存器的内容为寄存器的内容为01H或或00H。第第
22、2 2章章 汇编语言程序格式汇编语言程序格式 移位运算符移位运算符移位运算符有:移位运算符有:SHL(逻辑左移)、(逻辑左移)、SHR(逻辑右移)(逻辑右移)格式:格式:表达式表达式 SHL(或(或SHR)n(移位次数)(移位次数)汇编程序将表达式左移或右移汇编程序将表达式左移或右移n位,高位或低位补位,高位或低位补0,若移,若移位次数大于位次数大于15,则结果为,则结果为0。【例例2.5】VAL EQU 5H;符号常量;符号常量VAL值值=5H MOV AL,VAL SHR 1;VAL=00000101B逻辑逻辑 右移右移1位为位为00000010=2注意:移位运算符注意:移位运算符SHL/
23、SHR在操作数中,汇编时对常量进在操作数中,汇编时对常量进行移位;而移位指令行移位;而移位指令SHL/SHR是在指令的操作码位置,执是在指令的操作码位置,执行时对寄存器或存储器单元中的操作数移位。行时对寄存器或存储器单元中的操作数移位。第第2 2章章 汇编语言程序格式汇编语言程序格式(3)关系运算符关系运算符关系运算符包括:关系运算符包括:EQ(等于)、(等于)、NE(不等)、(不等)、LT(小于)、(小于)、GT(大于)、(大于)、LE(小于等于)、(小于等于)、GE(大于等于)(大于等于)6种。种。格式:格式:表达式表达式1 关系运算符关系运算符 表达式表达式2计算结果,若关系成立,则为全
24、计算结果,若关系成立,则为全1,即,即0FFFFH;关系不成立,则为全关系不成立,则为全0。第第2 2章章 汇编语言程序格式汇编语言程序格式【例例2.6】MOV BX,32 EQ 45 等价于:等价于:MOV BX,0【例例2.7】MOV BX,56 GT 30 等价于:等价于:MOV BX,0FFFFH【例例2.8】MOV BX,(VAL LT 5)AND 20)OR(VAL GE 5)AND 30)当当VAL5时,汇编结果应该是:时,汇编结果应该是:MOV BX,20 当当VAL5时,汇编结果应该是:时,汇编结果应该是:MOV BX,30第第2 2章章 汇编语言程序格式汇编语言程序格式(4
25、)数值返回运算符数值返回运算符数值返回运算符包括:数值返回运算符包括:SEG(取段地址取段地址)、OFFSET(取偏移地址取偏移地址)、TYPE(取类型值取类型值)、LENGTH(取长度取长度)、SIZE(取总字节数取总字节数)这些操作符把一些特征或存储器地址的一部分作这些操作符把一些特征或存储器地址的一部分作为数值回送,但不改变源操作数的属性。为数值回送,但不改变源操作数的属性。第第2 2章章 汇编语言程序格式汇编语言程序格式 SEG格式:格式:SEG 变量名变量名/标号标号汇编程序将回送变量或标号的段地址值。汇编程序将回送变量或标号的段地址值。【例例2.9】如果如果DATA_SEG是从存储
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编语言 源程序 格式
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。