第2章80X86汇编语言与汇编程序—常用指令1.pptVIP

第2章80X86汇编语言与汇编程序—常用指令1.ppt

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

GLUT_C 2013-08 2.3 常用指令 2.3.0 汇编语言指令书写格式 1. 基本书写格式为 标号:操作码助记符 操作数,操作数 ;注释 标号不是必需的 注释也不是必需的 2. 标号 在指令操作码助记符前,由下划线、字母、数字构成,由下划线或者字符开始。 标号不是必需的 标号由“:”结束 “:”是英文状态下的符号 3. 指令助记符 包括操作码助记符和操作数 指令操作码助记符与操作数之间需用至少一个空格隔开 如果有多个操作数,操作数之间要用“,”隔开 “,”必须使用纯英文标点符号 4. 注释: 注释:用于对指令或者程序段的功能进行附加说明。 注释由“;”开始 注释不是必需的 注释的文字段可以使用任何可显示字符,注释仅用于对程序进行必要的说明,汇编时汇编器不对注释进行处理; “;”必须使用纯英文标点符号 2.3.1 数据传送指令 数据传送指令是最简单、最常用的一类指令,它是负责把数据、地址、或立即数传送到寄存器或存储单元中 。 几个符号约定: dst——目的操作数 ; src——源操作数 DATA——立即数 ;seg——段寄存器 1 通用数据传送指令 (1) 基本传送指令MOV 指令格式 MOV dst,src 指令功能 将源操作数src复制到目的操作数dst中,结果目的操作数的内容等于源操作数的内容,源操作数src的内容不变。 dst←src 对标志位的影响 该指令不影响标志位。 该指令的源操作数src可以使用各种寻址方式,目的操作数dst可以使用除立即数外的各种寻址方式。 依据源操作数、目的操作数的不同,MOV指令有6种具体格式 ① 通用寄存器之间的数据传送 ② 通用寄存器与段寄存器之间的数据传送 ③ 通用寄存器和存储单元之间的数据传送 例如 MOV AL,[BX] MOV [1234H],BX 存储单元可以使用各种寻址方式 存储单元前可以用PTR描述数据的属性:字节、字、双字 也可以使用隐含属性——数据属性由寄存器字长决定。 例如: MOV [1234H],BX ;存储的是16位数据 MOV [BX], AL ;存储的是字节型数据 MOV BL, ES:[1000H] ;读取的是字节型数据 MOV Word PTR [1234H],BX ;存储的是16位数据 MOV AL, BYTE PTR [BX] ;存储的是字节型数据 对于这类有一个数据是寄存器的情况,由于寄存器字长是确定的,存储器属性一定与寄存器一致,故可以不加PTR描述,而使用隐含属性。 ④ 段寄存器和存储单元之间的数据传送 例如 MOV DS,[3000H] MOV [BX+SI], CS 数据传送都是2字节——段寄存是2字节的 存储器可以使用各种寻址方式 ⑤ 立即数送通用寄存器 MOV AX, 1234H ;将立即数1234H?AX 可以送到所有的通用寄存器 注意:段寄存器不是通用寄存器,立即数不能送段寄存器 ⑥ 立即数送存储单元 2. 扩展传送指令 (1) 符号扩展指令 格式: MOVSX reg ,source 功能: 带符号的源操作数进行符号扩展后,存入目的寄存器。 该指令将一个8位数据扩展为16位数据 或者将一个16位数据扩展为32位数据。 将一个数据的二进制位数进行扩展,需要保持数据的绝对值和符号不变。在使用补码时,只要简单的将符号位填充到扩展的高位二进制位,就可满足该要求。 例如: 0110 0100B →0000 0000 0110 0100B 1101 1110B →1111 1111 1101 1110B (2)零扩展指令 格式: MOVZX reg , source 功能: 将8位无符号数数据扩展为16位无符号数,或者将16位无符号数扩展为32位无符号数。 无符号数扩展,直接在高位补0。 例如 (BL)= 1001 0110B 执行 MOVZX AX , BL (AX)=0000 0000 1001 0110B 如果是执行符号扩展指令 MOVSX AX, BL (AX)= 1111 1111 1001 0110B 3. 数据交换指令 (3) 使用注意事项 可以在两个寄存器、或寄存器与存储器之间交换 不能与段寄存器进行交换, 也不能

文档评论(0)

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

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

1亿VIP精品文档

相关文档