网站大量收购独家精品文档,联系QQ:2885784924

第3章80x86指令系统.ppt

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

第3章80x86指令系统 本章重点: 80x86系列CPU的各种寻址方式。 80x86指令系统的各种常用指令。 本章难点: 8086/第3章80x86指令系统 8086/8088CPU系统的地址寻址方式。 8086/8088存储器寻址方式中有效地址EA的计算。 8086/8088指令系统中各种常用指令的使用方法,指令间的区别及其隐含约定。 3 .1 8086/8088指令格式 3 .1 .1 操作码与地址码 8086/8088的指令格式 3 .1 .2 单操作数、双操作数及多操作数 1.单操作数 在一条指令中仅指明一个操作数。 2.双操作数 在一条指令中同时指出两个操作数。 3.多操作数 在一条指令中,同时指出二个以上操作数。 8086/8088 CPU的指令中最短的指令为一个字节,称为单字节指令,这类指令只有操作码(1字节)而无操作数或者隐含操作数。 3 .1 .3 8086/8088的操作数 8086/8088的操作数分为以下几类: 1.立即数 是指令中参与操作且紧跟在操作码后面的常数。立即数只能作为源操作数使用。 2.寄存器操作数 (1)指令中要操作的数据存放在8个通用寄存器或者4个段寄存器中。 (2)对于AX、BX、CX、DX可以当作8位寄存器使用,存放字节操作数或者作为16位寄存器使用,存放字操作数; (3)对于SI、DI、SP、BP,则只能存放字操作数; (4)对于CS、DS、ES和SS段寄存器用来存放当前操作数的段基址 3.存储器操作数 此类操作数存放在指定的存储单元中,若为字节操作数,则占用1个字节存储单元;若为字操作数,则占用2个字节存储单元;若为双字操作数,则占用4个字节存储单元。 4.I/O端口操作数 指令中参与操作的数据来源于或者要传送到I/O端口。 3 .2 8086/8088指令寻址方式 寻找操作数(包括数据和地址)有各种方法,这些方法称为寻址方式。所谓寻址就是寻找操作数(数据寻址)或者操作数地址(地址寻址)。 3 .2 .1 隐含寻址 有少数指令,操作数不在指令中出现,这种寻址方式称为隐含寻址。它用于对特定的寄存器实现特定的操作。例如DAA(十进制数加法调整)指令和DAS(十进制数减法调整)指令。 3 .2 .2 立即寻址 8位或16位的操作数直接包含在指令中,紧跟在操作码之后,作为指令的一部分。该操作数在指令执行时便可“立即”获得,故称立即寻址。 例句:MOV BL,50H ;将8位立即数50H传送到寄存器BL中 MOV AX,2000H ;将16位立即数2000H传送到累加器AX中 3 .2 .3 寄存器寻址 这是最常用也是最简明的一种寻址方式。指令所需的操作数就存放在指令规定的某个寄存器内。 例句:MOV BX,CX ;将CX寄存器中的内容复制到BX中。 MOV DS,AX ;将AX中的内容复制到DS段寄存器中。 3 .2 .4 存储器寻址 直接寻址、寄存器间接寻址、寄存器相对寻址、基址变址寻址、相对基址变址寻址,共有5种方式。 1.直接寻址 例句: MOV AX,DS:[2000H] ; 将存储器中逻辑地址为DS:2000H字单元的内容传送到AX。 本指令也可写成MOV AX,[2000H] ; 即该指令默认的操作数段基址由DS段寄存器确定。由于操作数通常皆放在数据段中,故段寄存器DS可以缺省,而不必指明。 注意:使用直接寻址方式时要求: 在常数位移量中,2000H必须加上方括号,此括号不能省,它不是立即数,而是有效地址EA。 从指令功能看,不是将立即数2000H传送至累加器AX,而是将有效地址为2000H所指字存储单元内容传送至AX。 2.寄存器间接寻址 例句:MOV AX,[BX] MOV AX,[BP] 除了有段跨越前缀的情况外,通常规定: 若用SI、DI、BX间接寻址,则通常操作数在当前数据段DS区域中,计算操作数的物理地址,应使用数据段寄存器DS。 若用BP间接寻址,则操作数默认在堆栈段区域中。即需使用堆栈段寄存器SS。将SS内容左移4位加上BP的内容,即为操作数的地址。 注意: 3. 寄存器相对寻址 例句:MOV AX,[BX+5] 或者 MOV AX,5[BX] 例句:MOV AX,DATA[BX] 或者 MOV AX,[BX+DATA] 4.基址变址寻址 例句:MOV AX,[BX][SI] ;将BX与SI之和所指定的字存储单元内容送AX。 或者 MOV AX,[BX+SI] 5.相对基址变址寻址 例句:MOV AX,1234H[BX+SI]

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档