- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* 二、变量定义伪指令 定义变量的伪指令又可叫数据定义伪指令。 格式:变量名 伪指令助记符 操作数 ;注释 (1)变量名由用户起名;(2)伪指令助记符有如下几种: DB(字节)、 DW(字)、DD(双字)、DF、DQ、DT(3)操作数可以是常数或表达式;(4)注释用来说明伪指令的功能,它亦可有可无。 解释: 功能:定义变量的类型、名字,并为变量中的操作数项分配存储单元 4.2 汇编语言伪指令 * 表达式: 表达式项是给变量或指定存储单元赋予的初值,多个操作数之间须用逗号“,”分隔,具体有以下几种形式: (1)数值表达式 (2)地址表达式(只适用DW和DD两个伪指令) (3)字符串表达式 (4)? 表达式 (5)带DUP的表达式 4.2 汇编语言伪指令 * 汇编后的内存分配如图所示: Data segment A DB 10,5,30H B DW 100H,100,-4 C DD 2*30,0EEFBH Data ends 1、数值表达式 举例 4.2 汇编语言伪指令 * 2、地址表达式形式 汇编后的内存分配如图所示: DATA SEGMENT X DW 2,1,$+4,7,8,$+5 Len db $-x DATA ENDS 解释:地址计数器$ 在伪指令中, $表示地址计数器的当前值。 地址计数器:每进入一个新段,地址计数器清零;每分配一个单元,地址计数器自动加1,指向下一个待分配的单元;$代表当前值 4.2 汇编语言伪指令 * 3、字符串表达式形式 DATA SEGMENT STR1 DB ‘12’ STR2 DB ‘HELLO!’ STR3 DW ‘CD’,’3’ DATA ENDS 汇编后的内存分配如图所示: 解释: STR3 DW ‘CD’,’3’ 4.2 汇编语言伪指令 * 操作数是“?”,只用来保留内存空间,但不存入数据,即初始值未定义。 例: A DB 0,1,?,?,? L DW ?,54,? 汇编后的内存分配如图示: 4、?表达式形式 4.2 汇编语言伪指令 * 例:ABC DB 0,1,?,?,? 亦可写成: ABC DB 0,1,3 DUP(?) 5、DUP表达式形式 格式:n DUP(表达式1,表达式2,…,表达式n) 功能:利用给出的一个或一组初值来重复地初始化存储单元。 n 为重复次数,括号中的内容为被重复的内容 DUP还可以嵌套,以下DAT变量的内存分配示意图如图所示 DAT DW 2 DUP(10H, 2 DUP(1,2)) 4.2 汇编语言伪指令 * 三、段定义伪指令 1、段定义伪指令SEGMENT/ENDS 格式: 段名 SEGMENT [定位类型] [组合类型] [’类别’] ┇ 段名 ENDS 解释: SEGMENT和ENDS这两个伪指令总是成对出现,二者前面的段名一致,由用户起。二者之间的删节部分,一般是符号、变量定义等伪指令。对于数据段、附加段及堆栈段同数据段,对于代码段一般则是指令。为了阅读方便,习惯上总是根据段体的性质起段名,如通常用DATA作为数据段段名,用STACK作为堆栈段段名,用CODE作为代码段段名 4.2 汇编语言伪指令 * 2.指定段寄存器伪指令ASSUME 格式:ASSUME 段寄存器名:段名[,段寄存器名:段名……] 功能:建立段寄存器与段之间的关系。即指出某个段的段地址在哪个段寄存器中。如: ASSUME CS:CODE,DS:DATA 注意:ASSUME并不能为段寄存器赋值。 说明:ASSUME伪指令只是告知汇编程序有关段寄存器与段的关系,并没有给段寄存器赋予实际的初值。需通过以下指令: MOV AX,DATA MOV DS,AX MOV ES,AX 实现将段地址装入段寄存器。 代码段不需要用户装,由初始化程序装入 4.2 汇编语言伪指令 * 3、置汇编地址计数器伪指令ORG 格式:ORG 数值表达式 功能:将数值表达式的值赋给汇编地址计数器。 ORG规定了段内的起始偏移地址,表达式的值即为段内的起始偏移地址,从此地址起连续存放程序或数据。数值表达式的值须为0--65535之间的非负整数。 例,给汇编地址计数器赋值。 DATA SEGMENT ORG 10 ;置$值为10 VAR1 DW 100H,200H ORG $+5 ;置$的值为14+5,即为19 VAR2 DB ‘ABC’ DATA ENDS 4.2 汇编语言伪指令 * 四、其它伪指令 1、LABEL类型定义伪指令 格式:名字 LABEL 类型 功能:为要使用的变量或标号定义一种新类型或修改原类型属性 。通常与数据定义伪
文档评论(0)