微机原理与接口 第5章2_伪指令-宏指令.ppt

微机原理与接口 第5章2_伪指令-宏指令.ppt

ID:48812074

大小:355.00 KB

页数:49页

时间:2020-01-28

微机原理与接口 第5章2_伪指令-宏指令.ppt_第1页
微机原理与接口 第5章2_伪指令-宏指令.ppt_第2页
微机原理与接口 第5章2_伪指令-宏指令.ppt_第3页
微机原理与接口 第5章2_伪指令-宏指令.ppt_第4页
微机原理与接口 第5章2_伪指令-宏指令.ppt_第5页
资源描述:

《微机原理与接口 第5章2_伪指令-宏指令.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、5.3伪指令语句宏汇编程序MASM提供了约几十种伪指令,根据伪指令的功能,大致可以分为以下几类:●数据定义伪指令●符号定义伪指令●段定义伪指令●过程定义伪指令●宏处理伪指令●模块定义与连接伪指令●处理器选择伪指令●条件伪指令●列表伪指令●其他伪指令15.3.1数据定义伪指令数据定义伪指令的用途:定义一个变量的类型,给变量赋初值;或者仅仅给变量分配存储单元,而不赋予特定的值。数据定义伪指令有DB,DW,DD,DF,DQ,DT等,而常用的是前三种。数据定义伪指令的一般格式为:[变量名]伪指令定义符操作数[,操作数…]其中方括号中的变量名为任选项,可以有,也可以没有。变量名后面不跟冒

2、号。伪指令定义符后面的操作数可以不止一个。如有多个操作数,相互之间应该用逗号分开。21、字节变量的定义DB(DefineByte)DB伪指令用于分配一个或多个字节单元,并可以将它们初始化为指定值初值表中每个数据一定是字节量,存放一个8位数据:可以是0~255的无符号数或是-128~+127带符号数也可以是字符串常数实例3字节变量定义实例;数据段Xdb'a',-5db2dup(100),?Ydb'ABC'应用moval,X;此处X表示它的第1个数据,故AL←'a'decX+1;对X为始的第2个数据减1,故成为-6movY,al;现在Y这个字符串成为'aBC'42、字变量的定义DW

3、(DefineWord)DW伪指令用于分配一个或多个字单元,并可以将它们初始化为指定值初值表中每个数据是字量,一个字单元可用于存放任何16位数据:一个段地址一个偏移地址两个字符0~65535之间的无符号数-32768~+32767之间的带符号数5字变量定义实例;数据段countdw8000h,?,'AB'maxintequ64hnumberdwmaxintarraydwmaxintdup(0)63、双字变量的定义DD(DefineDoubleword)DD伪指令用于分配一个或多个双字单元,并可以将它们初始化为指定值初值表中每个数据是一个32位的双字量:可以是有符号或无符号的32

4、位整数也可以用来表达16位段地址(高位字)和16位的偏移地址(低位字)的远指针varddDD0,?,12345678hfarpointDD00400078h7其他数据单元定义伪指令定义3字伪指令DF——用于为一个或多个6字节变量分配空间及初始化6字节常用在32位CPU中表示一个48位远指针(16位段选择器:32位偏移地址)定义4字伪指令DQ——用于为一个或多个8字节变量分配空间及初始化8字节变量可以表达一个64位整数定义10字节伪指令DT——用于为一个或多个10字节变量分配空间及初始化10字节变量可以表达扩展精度浮点数8变量的应用变量具有存储单元的逻辑地址程序代码中通过变量名引

5、用其指向的首个数据通过变量名加减位移量存取以首个数据为基地址的前后数据字符串表达式数据项可以写成字符串形式,但只能用DB、DW、DD定义,而且DW、DD语句定义的串只允许包含两个字符。参看下面的例子。9例:S1DB‘ABCDEF’S2DW‘AB’,‘CD’,‘EF’S3DD‘AB’,‘CD’这几个变量在存储器中存放情况如下:S141HS242HS342H42H41H41H43H44H00H44H43H00H45H46H44H46H45H43H00H00H注意:定义多于两个以上字符的字符串时,只能使用DB伪指令,不能使用DW和DD等伪指令。10问号“?”定义:除了常数、表达式和字

6、符串外,问号“?”也可以作为数据定义伪指令的操作数,此时仅给变量保留相应的存储单元,而不赋予变量某个确定的初值。DUP定义:当同样的操作数重复多次时,可用重复操作符“DUP”表示,其形式为:nDUP(初值[,初值,…]);[,初值,…]?其中圆括号中为重复的内容,n为重复次数。如果用“nDUP(?)”作为数据定义伪指令定义符的惟一操作数,则汇编程序产生一个相应的数据区,但不赋任何初值。重复操作符“DUP”可以嵌套。下面是用问号或“DUP”表示操作数的几个例子:11FILLERDB?SUMDW?DB?,?,?BUFFERDB10DUP(?)ZERODW30DUP(0)MASKDB

7、5DUP('OK!')ARRAYDB100DUP(3DUP(8),6)其中MASK定义一个数据区,其中有5个重复的字符串'OK!'变量ARRAY定义为一个数据区,其中包含重复100次的内容:8,8,8,6,共占400个字节。试画出内存存储空间及初始化的数据值?12定义时避免出现错误:下面是几个错误的数据定义伪指令语句:ERROR1:DW99;变量名后有冒号ERROR2DB25*90;DB的操作数超过255ERROR3DD‘1234’;DD的操作数超过2个字符的字符串,超过2个字符串必须使用D

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。