汇编语言02分析.pptVIP

  1. 1、本文档共71页,可阅读全部内容。
  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文档。上传文档
查看更多
汇编语言02分析

汇编语言课件02 寻址方式与传送指令 目 标 熟悉 8088/8086的各种寻址方式 理解常用指令的功能 指令系统 计算机提供给用户使用的指令集 双操作数指令格式: 操作结果:替代目的操作数,不影响源操作数 要访问操作数,首先必须确定如何形成操作数的地址。 8088/8086的寻址方式 寻址方式:确定获得操作数地址的方法 1) 操作数存放于操作码之后—立即数寻址方式 2) 操作数存放于CPU内部的寄存器中—寄存器寻址方式 3) 操作数存放于存储器中—存储器寻址方式 4) 操作数在I/O接口寄存器中 1)立即数寻址方式 用立即数寻址方式的操作数就直接存放在机器代码中,紧跟在操作码之后 立即数imm,它可以是8位数值i8(00H~FFH),可以是16位数值i16(0000H~FFFFH),也可以是32位数值i32~FFFFFFFFH) 例: 将立即数34H送至AL寄存器 MOV AL , 34H ; 指令功能: AL←34H, 指令代码:B0 34 One_number = 34H MOV AL, One_number 例: 将立即数3045H送至AX寄存器 MOV AX,3045H ; 指令功能 AX←3045H 指令代码:B8 45 30 说明 立即数寻址方式常用来给寄存器和存储单元赋初值。 在汇编语言中,立即数是以常量形式出现的。常量可以是二进制数(后缀字母 B或b)、十进制数(不用后缀字母,或者用 D或d)、16进制数(后缀字母H或h,以A~F开头则要加个0)、字符串(用单或双引号扩起的字符,表示对应的ASCII码值,例如:‘A’=41H),还可以是标识符表示的符号常量、数值表达式。 MOV AX,2+3/4 MOV AL,’0’ MOV AL,30H 2) 寄存器寻址方式 寄存器寻址方式的操作数存放在 CPU的内部寄存器reg中,它可以是8位寄存器r8:AH/AL/BH/BL/CH/CL/DH/DL;也可以是16位寄存器r16:AX/BX/CX/DX/SI/DI/BP/SP。另外,操作数还可以存放在4个段寄存器seg中:CS/DS/SS/ES 也可以是32位寄存器 例: 将BX寄存器内容送至AX寄存器 说明 寄存器寻址方式的操作数存放于 CPU的一个内部寄存器中,不需要访问存储器,因而执行速度较快,是经常使用的方法。在双操作数的指令中,操作数之一必是寄存器寻址得到的 存储器寻址方式 存储器寻址方式的操作数存放在主存储器中,用其所在主存的位置表示操作数。在这种寻址方式下,指令中给出的是有关操作数的主存地址信息 当操作数存放在内存中时,寻找操作数归结为如何确定存储单元的地址 逻辑地址 段基值:偏移量 3. 直接寻址方式 指令中直接包含了操作数的有效地址,跟在指令操作码之后 其默认的段地址在DS段寄存器中,可以使用段超越前缀来改变 4. 寄存器间接寻址方式 在这种寻址方式中,操作数的有效地址存放在基址寄存器 BX或变址寄存器 SI、DI中。其默认的段地址在DS段寄存器中,可以使用段超越前缀改变 操作数的有效地址也可存放在BP寄存器,此时操作数 默认在堆栈段SS;使用段超越前缀改变段 5. 变址寻址方式(相对寻址) 在这种寻址方式下,操作数的有效地址(EA)是寄存器内容与有符号8位或16位位移量之和 寄存器是BX、BP或SI、DI。其中,BX、SI、DI寄存器默认是数据段 DS,BP 寄存器默认是堆栈段SS;但都可用段超越前缀改变 有效地址位移量= (寄存器)+8/16位移量 在汇编语言中,位移量可用常量表示,也可用符号表示,对于已定义的 WVAR变量: WVAR DW 2 MOV AX,[SI+WVAR] 也可以书写成: MOV AX,WVAR[SI] 假定WVAR的地址是DS:100H 则MOV AX,WVAR[SI] 实际为MOV AX, [SI+100H] 6. 基址变址寻址方式 这种寻址方式是把一个基址寄存器(BX或BP)的内容加上变址寄存器(SI或DI)的内容构成操作数的有效地址 EA。若基址寄存器使用BX,其默认段为数据段DS;若基址寄存器使用BP,其默认段为堆栈段SS;但都可用段超越前缀改变 例: 将数据段中BX与SI之和作为偏移地址的内存数据送至AX寄存器 MOV AX,[BX+SI] ; AX←DS : [BX+SI] 对于上述指令,汇编语言也支持如下形式: MOV AX,[BX][SI] ; AX←DS : [BX+SI] 7. 相对基址变址寻址方式 相对基址变址寻址方式,也使用基址寄存器(BX或BP)和变址寄存器(SI或DI),另外还在指令中指定一个8位或16位的位移量,这三者之

文档评论(0)

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

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

1亿VIP精品文档

相关文档