汇编语言的伪指令语句.pptx
《汇编语言的伪指令语句.pptx》由会员分享,可在线阅读,更多相关《汇编语言的伪指令语句.pptx(103页珍藏版)》请在咨信网上搜索。
1、 说明:说明:在在EQUEQU语句的表达式语句的表达式中,如果有中,如果有标号名标号名或或变量名变量名,则该语句必须,则该语句必须放在它们的定义语句之后。放在它们的定义语句之后。例如例如AB EQU DATA+2AB EQU DATA+2必须放在必须放在标识符标识符DATADATA的定义之后,否则汇编程序将指示以下错误的定义之后,否则汇编程序将指示以下错误:Symbol not defined:DATASymbol not defined:DATA 后面的后面的EQUEQU伪操作伪操作可以利用可以利用前面的前面的EQUEQU伪操作已经定义的符号名伪操作已经定义的符号名。例如:例如:ALPHA
2、EQU 7 ALPHA EQU 7 ;给数值;给数值7 7 赋以符号名赋以符号名ALPHAALPHABETA EQU ALPHA-2 BETA EQU ALPHA-2 ;给;给7-2=57-2=5赋以符号名赋以符号名BETABETAADDR EQU VAR+BETA ADDR EQU VAR+BETA ;给;给VAR+5VAR+5赋以符号名赋以符号名ADDRADDR 使用使用EQUEQU伪操作定义过的符号名伪操作定义过的符号名不允许重复定义。不允许重复定义。例如:例如:EMP EQU 0 EMP EQU 0 ;给数值;给数值7 7赋以符号名赋以符号名ALPHAALPHAEMP EQU EMP+
3、1 EMP EQU EMP+1 ;汇编该语句时,汇编程序将指示出错汇编该语句时,汇编程序将指示出错。(2 2)等号语句)等号语句 =格式:格式:符号名符号名 =表达式表达式/指令助记符指令助记符 该语句的功能与该语句的功能与EQUEQU完全相同,唯一的区别是:完全相同,唯一的区别是:该语句可以对符号名进该语句可以对符号名进行重复定义行重复定义。例如:例如:EMP =0 EMP =0 ;定义符号名;定义符号名EMPEMP为为0 0EMP =EMP+1 EMP =EMP+1 ;重新定义符号名;重新定义符号名EMPEMP为为1 1,完全合法。,完全合法。二、数据定义伪指令语句二、数据定义伪指令语句
4、数据定义语句用于数据定义语句用于定义变量定义变量,该语句指定,该语句指定变量的名称变量的名称和和变量的类型变量的类型,并并为该变量分配存储单元为该变量分配存储单元。(1 1)数据定义语句的格式)数据定义语句的格式 变量名变量名 数据定义符数据定义符 操作数操作数 ,操作数,操作数 ,操作数,操作数 其中,其中,变量名变量名:可选项。:可选项。操作数操作数:赋给变量的初值赋给变量的初值,多个,多个相同类型的变量相同类型的变量可在一条语句中可在一条语句中定义。定义。数据定义符数据定义符 常用数据定义符有以下三种。常用数据定义符有以下三种。DB DB :定义:定义字节变量字节变量,每个变量占有,每个
5、变量占有1 1个字节的存储单元个字节的存储单元。DW DW :定义:定义字变量字变量,每个变量占有,每个变量占有2 2个字节的存储单元个字节的存储单元。DD DD :定义:定义双字变量双字变量,每个变量占有,每个变量占有4 4个字节的存储单元个字节的存储单元。此外,还有此外,还有DQDQ、DFDF和和DTDT等类型。等类型。对于对于多字节变量多字节变量,其变量值的内存存放规则是,其变量值的内存存放规则是,低位字节占低地址低位字节占低地址单元单元,高位字节占高地址单元高位字节占高地址单元。说明:说明:经过定义的变量必然具有以下三个属性。经过定义的变量必然具有以下三个属性。数据类型数据类型 字节、
6、字、双字等等。字节、字、双字等等。偏移地址偏移地址 分配给该变量的存储单元的偏移地址。分配给该变量的存储单元的偏移地址。段基址段基址 分配给该变量的存储单元的段基址,也就是定义该变量的逻辑段的分配给该变量的存储单元的段基址,也就是定义该变量的逻辑段的段基址。段基址。(2 2)数据定义语句的具体形式和功能)数据定义语句的具体形式和功能 根据操作数的不同表达形式根据操作数的不同表达形式 ,常见的数据定义语句有以下几种具体形式。,常见的数据定义语句有以下几种具体形式。操作数是一个数值常量操作数是一个数值常量 例如:例如:X DB 25H X DB 25H ;定义一个名为;定义一个名为 X X、初值为
7、、初值为25H25H的字节变量的字节变量 Y DW 4142H Y DW 4142H ;定义一个名为;定义一个名为 Y Y、初值为、初值为4142H4142H的字变量的字变量 Z DD 12345678H Z DD 12345678H ;定义一个名为;定义一个名为 Z Z、初值为、初值为12345678H12345678H的双字变量的双字变量X X25H25HY Y42H42H41H41HZ Z78H78H56H56H34H34H12H12H 汇编时,汇编程序将完成以下工作:汇编时,汇编程序将完成以下工作:首先,定义首先,定义名为名为 X X 的字节变量的字节变量,并为其分配一,并为其分配一个
8、个字节单元字节单元,然后再把初值,然后再把初值25H25H装入该单元中。装入该单元中。随后,定义随后,定义名为名为 Y Y 的字变量的字变量,并为其分配一个,并为其分配一个字单元字单元,然后再把初值,然后再把初值4142H4142H装入该单元中。装入该单元中。最后,定义最后,定义名为名为 Z Z 的双字变量的双字变量,并为其分配一,并为其分配一个个双字单元双字单元,然后再把初值,然后再把初值12345678H12345678H装入该单元中。装入该单元中。操作数是一个数值表达式操作数是一个数值表达式 例如:例如:PORT PORT EQU 80H EQU 80H OUT_PORT DW PORT
9、+1 OUT_PORT DW PORT+1 汇编程序将定义一个汇编程序将定义一个名为名为OUT_PORTOUT_PORT的字类型变量的字类型变量,并为其分配一个,并为其分配一个字字单元单元,然后计算,然后计算数值表达式(数值表达式(PORT+1PORT+1)的数值,并把计算结果的数值,并把计算结果0081H0081H装入装入该单元中。该单元中。OUT_PORTOUT_PORT81H81H00H00H 操作数部分使用问号操作数部分使用问号?例如:例如:A DB A DB?;定义字节变量;定义字节变量A A,并为其分配一个字节单元,并为其分配一个字节单元B DW B DW?;定义字变量;定义字变量
10、B B,并为其分配一个字单元,并为其分配一个字单元 汇编程序只为变量分配存储单元,并不赋予其具体的初值,该变量的汇编程序只为变量分配存储单元,并不赋予其具体的初值,该变量的初值不确定。初值不确定。A AB B 操作数部分是用逗号分隔的若干个操作数操作数部分是用逗号分隔的若干个操作数 例如:例如:TABLE DW 1TABLE DW 1,2 2,3 3TABLETABLE01H01H00H00H02H02H00H00H03H03H00H00H 汇编程序首先定义一个汇编程序首先定义一个名为名为TABLETABLE的字类型的字类型变量变量,并为该变量分配一个,并为该变量分配一个字单元字单元,再将,再
11、将变量初变量初始值始值0001H0001H装入其中。装入其中。然后,再为一个然后,再为一个无名字变量无名字变量分配一个分配一个字单元字单元,并将并将变量初始值变量初始值0002H0002H装入其中。装入其中。最后,再为一个最后,再为一个无名字变量无名字变量分配一个分配一个字单元字单元,并将并将变量初始值变量初始值0003H0003H装入其中。装入其中。这个数据定义语句定义了三个变量,第一变量的变量名为这个数据定义语句定义了三个变量,第一变量的变量名为TABLETABLE,其,其它两个变量没有变量名。它两个变量没有变量名。但是由于这三个变量的存储单元但是由于这三个变量的存储单元依次排列依次排列,
12、具有,具有线性存储特性线性存储特性,因此,因此我们可以将这种数据定义语句看成是我们可以将这种数据定义语句看成是数组变量的定义语句数组变量的定义语句,并将,并将第一个变第一个变量的变量名量的变量名TABLETABLE看成是看成是数组变量名数组变量名,将这三个变量看成是该数组的数组,将这三个变量看成是该数组的数组元素。元素。于是各数组元素的访问地址可以用下式来确定。于是各数组元素的访问地址可以用下式来确定。数组元素地址数组元素地址 =数组变量名数组变量名 +数组元素下标值数组元素下标值*数组元素字节大小数组元素字节大小TABLETABLE01H01H00H00H02H02H00H00H03H03H
13、00H00HMOV AXMOV AX,TABLE TABLE ;(;(AXAX)=0001H=0001HMOV AXMOV AX,TABLE+1*2 TABLE+1*2 ;(;(AXAX)=0002H=0002HMOV AXMOV AX,TABLE+2*2 TABLE+2*2 ;(;(AXAX)=0003H=0003H 在定义在定义数组变量数组变量时,可以使用时,可以使用重复操作符重复操作符DUPDUP 来定义各个来定义各个数组元素数组元素,其定义格式如下。其定义格式如下。重复次数重复次数 DUPDUP(操作数(操作数1 1,操作数,操作数N N)这个表达形式的含义是,将这个表达形式的含义是,
14、将括号中的括号中的N N个操作数个操作数,以,以指定的次序指定的次序,重,重复复指定次数指定次数。其中,重复次数字段是。其中,重复次数字段是值为正整数的数值表达式值为正整数的数值表达式 。例如:例如:TABLE DB 2 DUPTABLE DB 2 DUP(0 0,1 1),),2 2 TABLE DB 0TABLE DB 0,1 1,0 0,1 1,2 2 注意:注意:DUPDUP重复操作符可以重复操作符可以嵌套使用嵌套使用,例如以下两式是等价的。,例如以下两式是等价的。TABLE DB 2 DUPTABLE DB 2 DUP(2 DUP2 DUP(1 1,2 2),),3 3)TABLE
15、DB 1TABLE DB 1,2 2,1 1,2 2,3 3,1 1,2 2,1 1,2 2,3 3C CD DA AB B 操作数是一个字符串常量操作数是一个字符串常量 例如:例如:STRINGSTRINGDB ABCDEFDB ABCDEF 该语句定义了一个该语句定义了一个字符数组变量字符数组变量STRING STRING。汇编程序将为这个数组变量。汇编程序将为这个数组变量分配一个数据区,并将字符串中每一个字符的分配一个数据区,并将字符串中每一个字符的ASCIIASCII码依次装入到数据区的码依次装入到数据区的各个字节单元中。各个字节单元中。STRINGSTRING41H41H42H42H
16、43H43H44H44HE EF F45H45H46H46HSTRING2STRING2 注意:注意:当当字符串长度字符串长度超过超过两个字符两个字符时,伪指令定义符只能使用时,伪指令定义符只能使用 DBDB 。当当字符串长度字符串长度不超过不超过两个字符两个字符时,伪指令定义符时,伪指令定义符 DBDB、DWDW、DDDD、DQ DQ 等都可以使用,但它们的意义有所不同。等都可以使用,但它们的意义有所不同。例如:例如:STRING1 DB ABSTRING1 DB ABSTRING2 DW ABSTRING2 DW ABB BA AA AB BSTRING1STRING141H41H42H4
17、2H42H42H41H41HMOV ALMOV AL,STRING1 STRING1 ;(;(ALAL)=41H=41HMOV ALMOV AL,STRING1+1 STRING1+1;(;(ALAL)=42H=42HMOV AXMOV AX,STRING2 STRING2 ;(;(AXAX)=4142H=4142HX XADDR2ADDR2 操作数是一个存储器地址(标号、过程名或变量名)操作数是一个存储器地址(标号、过程名或变量名)例:例:X XDBDB10H10HADDR1ADDR1DWDWX XADDR2ADDR2DDDDX XADDR1ADDR1变量变量X X的偏移地址的低字节的偏移地
18、址的低字节变量变量X X的偏移地址的高字节的偏移地址的高字节变量变量X X的偏移地址的低字节的偏移地址的低字节变量变量X X的偏移地址的高字节的偏移地址的高字节变量变量X X的段基址的低字节的段基址的低字节变量变量X X的段基址的高字节的段基址的高字节10H10H 当操作数是一个当操作数是一个存储器地址存储器地址时,数据时,数据定义符只能使用定义符只能使用 DW DW 或或 DDDD。此时汇编程序将使用此时汇编程序将使用这个存储器地址这个存储器地址的偏移地址(的偏移地址(DWDW)或全地址()或全地址(DDDD)来初始来初始化变量。化变量。全地址的存放格式是,全地址的存放格式是,1616位偏移
19、地址位偏移地址放在低地址单元,放在低地址单元,1616位段地址放在高地址位段地址放在高地址单元。单元。操作数是如下形式的地址表达式操作数是如下形式的地址表达式 标号或变量名标号或变量名 结果为整数的数值表达式结果为整数的数值表达式 这个地址表达式的运算结果仍然表示这个地址表达式的运算结果仍然表示一个标号或变量一个标号或变量,其,其类型属性类型属性和和段基址属性段基址属性与原来的标号或变量相同,只有其与原来的标号或变量相同,只有其偏移量属性偏移量属性产生相应的产生相应的增减。增减。因此,汇编程序对这个表达式的处理完全等同于处理一个存储器地因此,汇编程序对这个表达式的处理完全等同于处理一个存储器地
20、址。数据定义符只能使用址。数据定义符只能使用 DW DW 或或 DDDD,汇编程序将使用这个新存储器地址,汇编程序将使用这个新存储器地址(地址表达式的运算结果)的(地址表达式的运算结果)的偏移地址(偏移地址(DWDW)或或 全地址(全地址(DDDD)来初始化来初始化变量。变量。例如:例如:X XDBDB10H10HADDR1ADDR1DWDWX+1X+1ADDR2ADDR2DDDDX+1X+1 汇编第汇编第2 2条语句时,汇编程序将条语句时,汇编程序将存储器地址存储器地址X+1X+1的偏移地址的偏移地址装入到分装入到分配给变量配给变量ADDR1ADDR1的双字节存储单元内。的双字节存储单元内。
21、汇编第汇编第3 3条语句时,汇编程序将条语句时,汇编程序将存储器地址存储器地址X+1X+1的全地址的全地址装入到分配装入到分配给变量给变量ADDR2ADDR2的双字存储单元内。其中的双字存储单元内。其中1616位偏移地址被存放在低字单元内,位偏移地址被存放在低字单元内,1616位段地址被存放在高字单元内。位段地址被存放在高字单元内。操作数是如下形式的数值表达式操作数是如下形式的数值表达式 变量名变量名1-1-变量名变量名2 2 或者或者 标号标号1-1-标号标号2 2 其中,其中,变量名变量名1 1和变量名和变量名2 2:同一逻辑段内定义的两个变量名同一逻辑段内定义的两个变量名。标号标号1 1
22、和标号和标号2 2:同一代码段内定义的两个标号同一代码段内定义的两个标号。同一逻辑段内的两个标号或变量名的相减结果是一个同一逻辑段内的两个标号或变量名的相减结果是一个数值数值,它表示,它表示两者之间相距的字节数两者之间相距的字节数。TABLE2TABLE2LENGTH1LENGTH1LENGTH2LENGTH2TABLE1TABLE101H01H02H02H03H03H04H04H05H05H06H06H04H04H02H02H例如:例如:TABLE1TABLE1 DB 1 DB 1,2 2,3 3,4 4 TABLE2 TABLE2 DB 5 DB 5,6 6 LENGTH1 DB TABL
23、E2-TABLE1 LENGTH1 DB TABLE2-TABLE1 LENGTH2 DB LENGTH1-TABLE2 LENGTH2 DB LENGTH1-TABLE2 说明:说明:数据定义语句定义了数据定义语句定义了变量的数据类型变量的数据类型,汇编程序可以利用这种,汇编程序可以利用这种隐含的隐含的类型属性类型属性来确定某些指令是来确定某些指令是字指令字指令、还是、还是字节指令字节指令。例如:例如:OPER1 DB OPER1 DB?,?,?OPER2 DW OPER2 DW?,?,?MOV OPER1+1MOV OPER1+1,0 0 ;字节指令;字节指令MOV OPER2+2MOV
24、OPER2+2,0 0 ;字指令;字指令MOV OPER1+1MOV OPER1+1,AL AL ;字节指令;字节指令MOV OPER2+1MOV OPER2+1,AX AX ;字指令;字指令(3 3)分析运算符()分析运算符(SEGSEG、OFFSETOFFSET、TYPETYPE、SIZESIZE、LENGTHLENGTH)分析运算符作用于分析运算符作用于变量或标号变量或标号,运算结果为,运算结果为变量或标号的属性值变量或标号的属性值,其使用格式为:其使用格式为:运算符运算符变量变量/标号标号 SEGSEG和和OFFSETOFFSET运算符运算符 SEGSEG和和OFFSETOFFSET运
25、算分别返回运算分别返回变量或标号的段地址和偏移地址变量或标号的段地址和偏移地址。例如:例如:ARRAY DB 100 DUPARRAY DB 100 DUP(0 0);定义;定义字节数组变量字节数组变量ARRAYARRAY MOV AXMOV AX,SEG ARRAYSEG ARRAY ;变量变量ARRAYARRAY的段地址的段地址(AXAX)MOV DXMOV DX,AXAXMOV BXMOV BX,OFFSET ARRAYOFFSET ARRAY ;变量变量ARRAYARRAY的偏移地址的偏移地址(BXBX)MOV ALMOV AL,BXBX TYPE TYPE、LENGTH LENGTH
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编语言 指令 语句
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【w****g】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【w****g】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。