汇编语言语句种类及其格式.pptx
《汇编语言语句种类及其格式.pptx》由会员分享,可在线阅读,更多相关《汇编语言语句种类及其格式.pptx(84页珍藏版)》请在咨信网上搜索。
1、1 每一条指令语句在汇编时都要产生一个可供每一条指令语句在汇编时都要产生一个可供CPU执执行的机器目标代码,它又叫可执行语句。行的机器目标代码,它又叫可执行语句。一、指令语句一、指令语句指令语句的一般格式为:指令语句的一般格式为:标号标号指令助记符指令助记符操作数操作数注释注释;:,一条指令语句最多可以包含一条指令语句最多可以包含4个字段个字段 汇编语言的语句可以分为指令语句、伪指令语句汇编语言的语句可以分为指令语句、伪指令语句和宏指令语句(宏调用语句)。和宏指令语句(宏调用语句)。2标号是可选字段,它后面必须有标号是可选字段,它后面必须有“:”。标号是一。标号是一条指令的符号地址,代表了该指
2、令的第一个字节存条指令的符号地址,代表了该指令的第一个字节存放地址。放地址。1.标号字段标号字段标号一般放在一个程序段或子程序的入口处,控制标号一般放在一个程序段或子程序的入口处,控制程序的执行转到该程序位置。程序的执行转到该程序位置。例例 ADDR1:MOV AL,100在转移指令或子程序调用指令中,可直接引用这个在转移指令或子程序调用指令中,可直接引用这个标号。标号。3该字段是一条指令的必选项,它表示这条语句要求该字段是一条指令的必选项,它表示这条语句要求CPU完成什么具体操作,如完成什么具体操作,如MOV、ADD、SHL等。等。2.指令助记符字段指令助记符字段一条指令可以有一个操作数、两
3、个操作数或者无操一条指令可以有一个操作数、两个操作数或者无操作数。作数。3.操作数字段操作数字段有些指令还可以在指令助记符的前面加上前缀,实有些指令还可以在指令助记符的前面加上前缀,实现一定的附加操作。如串操作指令前所加的重复前现一定的附加操作。如串操作指令前所加的重复前缀缀REP(见第(见第7章介绍)等。章介绍)等。如如ADD、MOV指令需要两个操作数,指令需要两个操作数,INC、NOT指指令只需一个操作数,而令只需一个操作数,而CLC指令不需要操作数。指令不需要操作数。44.注释字段注释字段例:例:LABEL1:ADD AX,BX;功能为;功能为AXMOV AX,0FF0FHMOV AL,
4、NOT 0F0H =MOV AL,0FHMOV BL,55H AND 0F0H=MOV BL,50HMOV BH,55H OR 0F0H =MOV BH,0F5HMOV CL,55H XOR 0F0H=MOV CL,0A5H三、关系运算符三、关系运算符关系运算符包括:关系运算符包括:EQ(等于)、(等于)、NE(不等于)、(不等于)、LT(小(小于)、于)、LE(小于等于)、(小于等于)、GT(大于)、(大于)、GE(大于等于)(大于等于)39 关系运算符用于比较两个表达式的大小。关系运算符关系运算符用于比较两个表达式的大小。关系运算符比较的两个表达式必须同为常数或同一逻辑段中的变量。比较的两
5、个表达式必须同为常数或同一逻辑段中的变量。如果是常量的比较,则按无符号数进行比较;如果是如果是常量的比较,则按无符号数进行比较;如果是变量的比较,则比较它们的偏移量的大小。变量的比较,则比较它们的偏移量的大小。关系运算的结果只能是关系运算的结果只能是“真真”(全(全1)或)或“假假”(全(全0)MOV AX,0FH EQ 1111B=MOV AX,0FFFFHMOV BX,0FH NE 1111B=MOV BX,0例例1:VAR DW NUM LT 0ABH该语句在汇编时,根据符号常量该语句在汇编时,根据符号常量NUM的大小来决定的大小来决定VAR存储单元的值,当存储单元的值,当NUM0ABH
6、时,则变量时,则变量VAR的内容为的内容为0FFFFH,否则否则VAR的内容为的内容为0。例例240四、数值返回运算符四、数值返回运算符 该类运算符有该类运算符有5个,它们将变量或标号的某些特征值或存个,它们将变量或标号的某些特征值或存储单元地址的一部分提取出来。储单元地址的一部分提取出来。取变量或标号所在段的段基值。取变量或标号所在段的段基值。1.SEG运算符运算符DATA SEGMENT K1 DW 1,2 K2 DW 3,4 MOV AX,SEG K1MOV BX,SEG K2例如:例如:设设DATA逻辑段的段基值为逻辑段的段基值为1FFEH,则两条传送指令将被汇编为:,则两条传送指令将
7、被汇编为:MOV AX,1FFEHMOV BX,1FFEH作用作用41该运算符的作用是取变量或标号在段内的偏移量。该运算符的作用是取变量或标号在段内的偏移量。2.OFFSET运算符运算符例如:例如:DATA SEGMENTVAR1 DB 20H DUP(0)VAR2 DW 5A49HADDR DW VAR2;将将VAR2的偏移量的偏移量20H存入存入ADDR中中 .MOV BX,VAR2;(BX)=5A49H MOV SI,0FFSET VAR2 ;(SI)=20H MOV DI,ADDR ;DI的内容与的内容与SI相同相同 MOV BP,OFFSET ADDR;(BP)=22H42该运算符的
8、作用为取变量或标号的类型属性,并用数字形式该运算符的作用为取变量或标号的类型属性,并用数字形式来表示。对变量来说就是取它的字节长度。来表示。对变量来说就是取它的字节长度。3.TYPE运算符运算符变量变量BYTE 1WORD 2DWORD 4标号标号NEAR -1FAR -2例如:例如:V1 DB ABCDEV2 DW 1234H,5678HV3 DD V2 ;存放存放V2的段基值和偏移量的段基值和偏移量 MOV AL,TYPE V1 MOV CL,TYPE V2 MOV CH,TYPE V3上述程序段汇编后的等效指令序列如下:上述程序段汇编后的等效指令序列如下:43MOV AL,01HMOV
9、CL,02HMOV CH,04H 该运算符只能加在变量的前面。如果变量是用重复数该运算符只能加在变量的前面。如果变量是用重复数据操作符据操作符DUP说明的,则返回外层说明的,则返回外层DUP给定的值。如果没给定的值。如果没有用有用DUP说明,则返回值总是说明,则返回值总是1。4.LENGTH运算符运算符K1 DB 10H DUP(0)K2 DB 10H,20H,30H,40HK3 DW 20H DUP(0,1,2 DUP(0)K4 DB ABCDEFGH.44MOV AL,LENGTH K1;(AL)=10HMOV BL,LENGTH K2;(BL)=1MOV CX,LENGTH K3;(CX
10、)=20HMOV DX,LENGTH K4;(DX)=1 该运算符只能作用于变量,该运算符只能作用于变量,SIZE取值等于取值等于LENGTH和和TYPE两个运算符返回值的乘积。两个运算符返回值的乘积。5.SIZE运算符运算符例如,对于上面例子,加上以下指令:例如,对于上面例子,加上以下指令:MOV AL,SIZE K1;(;(AL)=10HMOV BL,SIZE K2;(BL)=1MOV CL,SIZE K3;(CL)=20H*2=40HMOV DL,SIZE K4;(DL)=145五、属性修改运算符五、属性修改运算符 这一类运算符用来对变量、标号或存储器操作数的类这一类运算符用来对变量、标
11、号或存储器操作数的类型属性进行修改或指定。型属性进行修改或指定。1.PTR运算符运算符类型类型 PTR 地址表达式地址表达式使用格式:使用格式:作用作用:将地址表达式所指定的标号、变量或用其它形式表将地址表达式所指定的标号、变量或用其它形式表示的存储器地址的类型属性修改为示的存储器地址的类型属性修改为“类型类型”所指的值。所指的值。类型可以是类型可以是BYTE、WORD、DWORD、NEAR和和FAR。这种修改是临时性的,只在含有该运算符的语句内有效。这种修改是临时性的,只在含有该运算符的语句内有效。46例如:例如:DA_BYTE DB 20H DUP(0)DA_WORD DW 30H DUP
12、(0).MOV AX,WORD PTR DA_BYTE10ADD BYTE PTR DA_WORD20,BLINC BYTE PTR BX SUB WORD PTR SI,100JMP FAR PTR SUB1;指明指明SUB1不是本段中的地址不是本段中的地址2.HIGH/LOW运算符运算符HIGH 表达式表达式 LOW 表达式表达式使用格式:使用格式:这两个运算符用来将一个数据分离出高字节和低字节。这两个运算符用来将一个数据分离出高字节和低字节。47如果表达式为一个常量,则将其分离成高如果表达式为一个常量,则将其分离成高8位和低位和低8位;位;如果表达式是一个地址(段基值或偏移量)时,则分如
13、果表达式是一个地址(段基值或偏移量)时,则分离出它的高字节和低字节。离出它的高字节和低字节。例如:例如:DATA SEGMENTCONST EQU 0ABCDHDA1 DB 10H DUP(0)DA2 DW 20H DUP(0)DATA ENDS .MOV AH,HIGH CONSTMOV AL,LOW CONSTMOV BH,HIGH (OFFSET DA1)MOV BL,LOW (OFFSET DA2)MOV CH,HIGH(SEG DA1)MOV CL,LOW (SEG DA2)设设DATA段的段基值是段的段基值是0926H,则上,则上述指令序列汇编后的等效指令为述指令序列汇编后的等效指
14、令为:MOV AH,0ABHMOV AL,0CDHMOV BH,00HMOV BL,10HMOV CH,09HMOV CL,26H48注意注意:HIGH/LOW运算符不能用来分离一个变量、寄运算符不能用来分离一个变量、寄存器或存储器单元的高字节与低字节。存器或存储器单元的高字节与低字节。下面语句使用是错误的用法。下面语句使用是错误的用法。DA1 DW 1234HMOV AH,HIGH DA1MOV BH,LOW AXMOV CH,HIGH SI493、THIS运算符运算符 THIS运算符一般与等值运算符运算符一般与等值运算符EQU连用,用来定连用,用来定义一个变量或标号的类型属性。所定义的变量
15、或标号的义一个变量或标号的类型属性。所定义的变量或标号的段基值和偏移量与紧跟其后的变量或标号相同。段基值和偏移量与紧跟其后的变量或标号相同。例如:例如:DATA_BYTE EQU THIS BYTEDATA_WORD DW 10 DUP(0)MOV AX,DATA_WORD MOV BL,DATA_BYTE .又如:又如:LFAR EQU THIS FARLNEAR:MOV AX,B标号标号LFAR与与LNEAR具有相同的逻辑地址值,但类型具有相同的逻辑地址值,但类型不同。不同。LNEAR只能被本段中的指令调用,而只能被本段中的指令调用,而LFAR可可以被其它段的指令调用。以被其它段的指令调用
16、。50六、运算符的优先级六、运算符的优先级在一个表达式中如果存在多个运算符时,在计算时就有先在一个表达式中如果存在多个运算符时,在计算时就有先后顺序问题。不同的运算符具有不同的运算优先级别。后顺序问题。不同的运算符具有不同的运算优先级别。优先级别优先级别 运算符运算符(最高)(最高)1 LENGTH,SIZE,圆括号,圆括号 2 PTR,OFFSET,SEG,TYPE,THIS 3 HIGH,LOW 4 *,/,MOD,SHR,SHL 5 +,-6 EQ,NE,LT,LE,GT,GE 7 NOT 8 AND(最低)(最低)9 OR,XOR51汇编程序在计算表达式时,按以下规则进行运算。汇编程序
17、在计算表达式时,按以下规则进行运算。先执行优先级别高的运算,再算较低级别运算;先执行优先级别高的运算,再算较低级别运算;相同优先级别的操作,按照在表达式中的顺序,从相同优先级别的操作,按照在表达式中的顺序,从左到右进行;左到右进行;可以用圆括号改变运算的顺序可以用圆括号改变运算的顺序。例如:例如:K1=10 OR 5 AND 1 ;结果为;结果为K1=11K2=(10 OR 5)AND 1;结果为;结果为K2=1524.5 程序的段结构程序的段结构 8086/8088在管理内存时,需要按照逻辑段进行划在管理内存时,需要按照逻辑段进行划分,不同的逻辑段可以用来存放不同目的的数据。在分,不同的逻辑
18、段可以用来存放不同目的的数据。在程序中使用四个段寄存器程序中使用四个段寄存器CS,DS,ES和和SS来访问它们。来访问它们。在源程序设计时,使用伪指令来定义和使用这些逻辑段。在源程序设计时,使用伪指令来定义和使用这些逻辑段。53段名段名 SEGMENT 定位类型定位类型 组合类型组合类型 类别名类别名 .本段语句序列本段语句序列 .段名段名 ENDS一般格式:一般格式:一、段定义伪指令一、段定义伪指令 伪指令伪指令SEGMENT和和ENDS用于定义一个逻辑段。使用于定义一个逻辑段。使用时必须配对,分别表示定义的开始与结束。用时必须配对,分别表示定义的开始与结束。54 段名是由用户自己任意选定的
19、,符合标识符定义段名是由用户自己任意选定的,符合标识符定义规则的一个名称。规则的一个名称。段定义伪指令语句各部分的作用如下:段定义伪指令语句各部分的作用如下:1、段名、段名 最好选用与该逻辑段用途相关的名称。如第一个数最好选用与该逻辑段用途相关的名称。如第一个数据段为据段为DATA1,第二个数据为第二个数据为DATA2等。等。一个段的开始与结尾用的段名必须一致。一个段的开始与结尾用的段名必须一致。552、定位类型、定位类型 定位类型用于决定段的起始边界,即第一个可存放数据定位类型用于决定段的起始边界,即第一个可存放数据的位置(不是段基址)。它可以有的位置(不是段基址)。它可以有4种取值。种取值
20、。由于一个页面为由于一个页面为256个字节,并且页面编号从个字节,并且页面编号从0开始,因此,开始,因此,PAGE定位类型的段起始地址的最后定位类型的段起始地址的最后8位二进制数一定为位二进制数一定为0,即以即以00H结尾的地址。结尾的地址。(1)PAGE:表示该段从一个页面的边界开始表示该段从一个页面的边界开始(2)PARA:表示该段从一个小节的边界开始表示该段从一个小节的边界开始如果用户未选定位类型,则缺省为如果用户未选定位类型,则缺省为PARA。56(3)WORD:表示该段从一个偶数字节地址开始,即段起始表示该段从一个偶数字节地址开始,即段起始单元地址的最后一位二进制数一定是单元地址的最
21、后一位二进制数一定是0。(4)BYTE:表示该段起始单元地址可以是任一地址值。表示该段起始单元地址可以是任一地址值。注意注意:定位类型为:定位类型为PAGE和和PARA时,段起始地址与段基址时,段起始地址与段基址相同。定位类型为相同。定位类型为WORD和和BYTE时,段起始地址与段基址时,段起始地址与段基址可能不同。可能不同。57(1)NONE:若未指定组合类型,表示本段与其它段无连接若未指定组合类型,表示本段与其它段无连接关系。在装入内存时,本段有自己的物理段,因此有自己的关系。在装入内存时,本段有自己的物理段,因此有自己的段基址。段基址。3、组合类型、组合类型 组合类型说明符用来指定段与段
22、之间的连接关系和定位。组合类型说明符用来指定段与段之间的连接关系和定位。它有六种取值选择。它有六种取值选择。(2)PUBLIC:在满足定位类型的前提下,将与该段同名的段在满足定位类型的前提下,将与该段同名的段邻接在一起,形成一个新的逻辑段,共用一个段基址。段内邻接在一起,形成一个新的逻辑段,共用一个段基址。段内的所有偏移量调整为相对于新逻辑段的段基址。的所有偏移量调整为相对于新逻辑段的段基址。(3)COMMON:产生一个覆盖段。在多个模块连接时,把产生一个覆盖段。在多个模块连接时,把该段与其它也用该段与其它也用COMMON说明的同名段置成相同的段基址,说明的同名段置成相同的段基址,这样就达到了
23、共享同一存储区。共享存储区的长度由同名段这样就达到了共享同一存储区。共享存储区的长度由同名段中最大的段确定。中最大的段确定。58(4)STACK:把所有同名段连接成一个连续段,且系统自动把所有同名段连接成一个连续段,且系统自动对对SS段寄存器初始化为该连续段的段基址。并初始化堆栈指段寄存器初始化为该连续段的段基址。并初始化堆栈指针针SP。用户程序中应至少有一个段用用户程序中应至少有一个段用STACK说明,否则需要用说明,否则需要用户程序自己初始化户程序自己初始化SS和和SP。(5)AT表达式表达式:表示本段可定位在表达式所指示的小节边界:表示本段可定位在表达式所指示的小节边界上。表达式的值也就
- 配套讲稿:
如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。