3-2-3-伪指令2.pptVIP

  1. 1、本文档共28页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
3-2-3-伪指令2

常用伪指令 1、定义段的伪指令 2、定义数据的伪指令 3、变量的属性及属性操作符 4、用DB定义字符串 5、问号?及DUP在DB和DW的应用 6、定义符号名的伪指令 7、地址计数器$ 8、置地址计数器伪指令ORG 9、堆栈定义及堆栈指针初始化 * 1、定义段的伪指令 段名 SEGMENT ┇ 段名 ENDS 要点归纳: 定义段的伪指令, 必须成对出现 必须有段名 ASSUME CS:CODE,DS:DATA ;用在代码段首行,指定段寄存器 段的起始地址由系统自动安排 段的第一个单元的偏移地址一定是0000H (段的起始地址一定为××××0H) CS:IP 会自动初始化 用户应完成其它段寄存器和偏移地址寄存器的初始化 * 2、定义数据的伪指令 归纳: 一般格式: DB 定义字节数据 Defin Byte,一个数据占1个字节 DW 定义字数据 Defin Word, 一个数据占2个字节 DD 定义双字数据 Defin Double word 一个数据占4个字节 [变量名] DB 数1[,数2,… ][;注释] 其它几个定义数据的伪指令: * 3、变量的属性及属性操作符(难点) 变量一旦定义,便具有某些属性, 在此,只介绍其中3种属性: ①段地址属性 与 段地址属性操作符SEG ②偏移地址属性 与 偏移地址属性操作符OFFSET ③变量类型属性 与 类型属性操作符PTR * D1 SEGMENT M1 DB 1,2 M2 DW 3456H,7 D1 ENDS ① 段地址属性与段地址属性操作符SEG 变量一旦定义,便具有段地址值; 一般不必知道段地址的具体值是多少, 但必须完成段寄存器的初始化。 * D1 SEGMENT M1 DB 1,2 M2 DW 3456H,7 D1 ENDS ① 段地址属性与段地址属性操作符SEG 获得段地址值的方法之一: 用段名作立即数,取段地址值。 MOV AX,D1 MOV DS,AX;完成DS的初始化 获得段地址值的方法之二: 在变量名前用SEG操作符,取变量的段地址值。 MOV AX,SEG M1 MOV DS, AX 等价与 MOV AX,SEG M2 MOV DS, AX 一个段中的所有变量具有相同的段地址值! * D1 SEGMENT M1 DB 1,2 M2 DW 3456H,7 D1 ENDS ② 偏移地址属性操作符OFFSET 任何变量都具有偏移地址 在变量名前用OFFSET操作符, 取变量的偏移地址值。 MOV BX,OFFSET M1 (BX)=? (BX)=0000H MOV SI,OFFSET M2 (SI)=? (SI)=0002H OFFSET 取变量的偏移地址值(传地址) 一般,不同变量具有不同的偏移地址值 * D1 SEGMENT M1 DB 1,2 M2 DW 3456H,7 D1 ENDS ② 偏移地址属性操作符OFFSET 注意 地址传送与数据传送 MOV BX,OFFSET M1 ;(BX)← 0000H,传地址 传地址;立即寻址 无OFFSET时,则为传数据, 直接寻址,等价于 MOV AL,[0000H] MOV AL, M1 ;(AL)←(0000H),传数据 * ~~~ 说明下列指令执行后,各寄存器的值=? CODE SEGMENT ASSUME CS:CODE,DS:D1 START:MOV AX,D1 MOV DS,AX MOV AX,M2 MOV SI,OFFSET M2 MOV CX,[SI] MOV DX,2[SI] … CODE ENDS D1 SEGMENT M1 DB 1,2 M2 DW 3456H,7 D1 ENDS 例1 ;AX=? 3456H ;SI=? 0002H ;CX=? 3456H 7 直接寻址 立即寻址,取地址 间接寻址 间接相对寻址 OFFSET的用途之一: OFFSET用于变量名前, 取变量的有效地址。 OFFSET的用途之二: OFFSET用于任何存储器操作数前, 取操作数的有效地址。 ;DX=? * ~~~ D3 SEGMENT A1 DW 2000H A2 DW 3000H D3 ENDS 例2 BX=? BX=2000H SI=? SI=3000H AX=? AX=2000H AX=? AX=? AX=3000H AX=5000H OFFSET的用途之二: OFFSET用于任何存储器操作数前, 取操作数的有效地址。 说明下列指

文档评论(0)

pengyou2017 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档