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

  1. 1、本文档共49页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
微机原理和接口 第5章2_伪指令-宏指令

5.3 伪指令语句;5.3.1 数据定义伪指令 数据定义伪指令的用途: 定义一个变量的类型,给变量赋初值; 或者仅仅给变量分配存储单元,而不赋予特定的值。 数据定义伪指令有DB,DW,DD,DF,DQ,DT等,而常用的是前三种。 数据定义伪指令的一般格式为: [变量名] 伪指令定义符 操作数[,操作数…] 其中方括号中的变量名为任选项,可以有,也可以没有。变量名后面不跟冒号。伪指令定义符后面的操作数可以不止一个。如有多个操作数,相互之间应该用逗号分开。 ;1、字节变量的定义DB(Define Byte);字节变量定义实例;2、字变量的定义DW(Define Word);字变量定义实例;3、双字变量的定义DD(Define Double word);其他数据单元定义伪指令;变量的应用; ;问号“?”定义: 除了常数、表达式和字符串外,问号“?”也可以作为数据定义伪指令的操作数,此时仅给变量保留相应的存储单元,而不赋予变量某个确定的初值。 DUP定义: 当同样的操作数重复多次时,可用重复操作符“DUP”表示,其形式为: n DUP(初值 [,初值,…]) ; [,初值,…]? 其中圆括号中为重复的内容,n为重复次数。 如果用“n DUP(?) ”作为数据定义伪指令定义符的惟一操作数,则汇编程序产生一个相应的数据区,但不赋任何初值。 重复操作符“DUP”可以嵌套。下面是用问号或“DUP”表示操作数的几个例子: ;FILLER DB ? SUM DW ? DB ?,?,? BUFFER DB 10 DUP(?) ZERO DW 30 DUP(0) MASK DB 5 DUP(OK!) ARRAY DB 100 DUP(3 DUP(8),6) 其中MASK 定义一个数据区,其中有5个重复的字符串OK! 变量ARRAY定义为一个数据区,其中包含重复100次的内容:8,8,8,6,共占400个字节。 试画出内存存储空间及初始化的数据值?;定义时避免出现错误: 下面是几个错误的数据定义伪指令语句: ERROR1: DW 99 ;变量名后有冒号 ERROR2 DB 25*90 ;DB的操作数超过255 ERROR3 DD ‘1234’ ;DD的操作数超过2个字符的字符串,超过2个字符串必须使用DB来定义; 例: 画图说明下列伪指令所定义的数据在内存中的存放形式。 ARV1 DB 3+4,43H,-2 ARV2 DW 474FH,1,? COUNT EQU 2 ARV3 DB 2 DUP(1,COUNT DUP(2)) ARV4 DD ARV3 ARV5 DB ‘AB’ ARV6 DW ‘AB’ 解:假设此数据段的段地址为1234H,即 DS=1234H,则有:;地址操作符;5.3.2 符号定义伪指令 符号定义伪指令的用途:是给一个符号重新命名,或定义新的类型属性等。 符号包括:汇编语言的变量名、标号名、过程名、寄存器名以及指令助记符等。 常用的符号定义伪指令: EQU、=(等号)和LABLE。; 1.EQU 格式:名字 EQU 表达式 EQU伪指令将表达式的值赋予一个名字。以后可用这个名字来代替上述表达式。 格式中的表达式可以是:一个常数、符号、数值表达式或地址表达式等。例如: ; 2.=(等号) 格式:名字=表达式 含义: = (等号)伪指令的功能与EQU伪指令基本相同。 与EQU主要区别:它可以对同一个名字重复定义。例如: ; 3.LABLE(类型定义伪指令) 格式:名字 LABLE 类型 LABLE伪指令的用途:定义标号或变量的类型。 变量的类型可以是BYTE、WORD、DWORD等; 标号的类型可以是NEAR或FAR。 利用LABEL伪指令可以使同一个数据区兼有BYTE和WORD两种属性,例: AREAW LABEL WORD ;变量AREAW的类型为WORD AREAB DB 100 DUP(?) ;变量AREAB的类型为BYTE MOV AREAW,AX ;AX送第1和第2字节中 MOV AREAB[49],AL ;AL送第50字节中 LABEL伪指令的功能等同于“EQU THIS” ;5.3.3 段定义伪指令 段定义伪指令的用途:在汇编语言源程序中定义逻辑段,常用的段定义伪指令有

文档评论(0)

jgx3536 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:6111134150000003

1亿VIP精品文档

相关文档