微机原理课件第2章80868088的指令系统.pptVIP

微机原理课件第2章80868088的指令系统.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文档。上传文档
查看更多
南京理工大学机械工程学院 王芳 简单程序的执行过程示例 指 令 指令:由操作码和操作数两部分组成。 操作码:指示计算机执行什么操作。 操作数:指明参加操作的数或者它所在的地址。 符号指令具体构成如下: 指令助记符 [目的操作数] [,源操作数] 例如:MOV AX, BX 操作数可以是操作数本身,可以是寄存器,也可以是操作数的地址,有的操作数隐含在助记符中(形式上无操作数),有的只有一个操作数,有的有两个操作数。通常,一条带有操作数的指令要指明用什么方式寻找操作数。 所谓寻址就是寻找操作数的地址。 在指令的执行过程中,为了取得操作数,既可能要访问存储单元又可能要访问寄存器。如何正确的获得指令所需要的操作数就是寻址方式要讨论的问题。 ? 寻址方式:寻找操作数所在地址的方式称为寻址方式。 寄存器寻址 立 即 寻 址 直 接 寻 址 例如:MOV AX,[1000H], 已知DS=3000H 直 接 寻 址 操作数在某个存储单元中,其偏移地址由指令直接给出。 段地址在不作专门说明时一般在DS段寄存器中。若在其他段中,则应在偏移地址前加段名和冒号。此16位的偏移量与操作码一起存放在代码段中。 寄存器间接寻址 例:MOV CX,[BX];已知DS=3000H,BX=1000H 解:已知段地址和偏移地址,则存储单元的物理地址为: 30000H + 1000H = 31000H 寄存器间接寻址 操作数在某个存储单元中,其偏移地址在指令给出的方括号中的寄存器中,即寄存器的内容为操作数的偏移地址。 所使用的段寄存器由指令中的间址寄存器确定。 若用BX、SI、DI寄存器间址,则操作数在当前数据段中,即段地址在DS中。 若用BP间址,则操作数在堆栈段SS中。 只有上述4个寄存器可以用于间接寻址。 间接寻址的优点:只要对间址用的寄存器作适当修改,一条指令就可以对许多不同的存储单元进行访问。循环程序设计中,多用间接寻址。 变址寻址(寄存器相对寻址) 基址变址寻址 操作数在某个存储器单元中,其偏移地址是指令中指定的基址寄存器和变址寄存器的内容与位移量3项相加之和。段地址由基址寄存器约定在哪一个段寄存器中。 8086/8088指令集 数据传送类指令 数据传送类指令 通用传送指令 格式: MOV dest, source 功能:把一个字节或一个字操作数从源传送到目的地(源保持不变),结果不影响标志位。 通用传送指令的操作数及其传送方向如图所示: 通用传送指令 使用该指令需注意以下几点: (1)?源和目的操作数不能同时为存储器操作数 (2)?两操作数的位数、类型和属性要一致 如: MOV AX,BL (3)?操作数不能出现二义性 如:MOV [BX], 1 操作数的类型不明确(字/字节?) (4)?CS,IP和立即数不能作目的操作数; (5) 不允许两个段寄存器之间传送数据 (6) 立即数不能直接送段寄存器 堆 栈 堆栈段是在存储器中开辟的一块特殊的数据存储区,它一端固定,另一端活动,只允许从活动端进出数据。这如同在货栈中由下至上堆放货物一样,即遵循“先进后出或后进先出”的原则。 堆栈的活动端称为栈顶,固定端称为栈底,设专门的堆栈指针寄存器SP进行管理,SP的内容始终为当前栈顶所在的存储单元地址,也即SP总是指向堆栈的栈顶。 堆 栈 堆栈的设置主要用来解决多级中断,子程序嵌套和递归等程序设计中难以处理的实际问题;还可以用来保护现场,寄存中间结果,并为主、子程序的转返提供强有力的依托。 8086/8088的堆栈操作都是字操作,将一个数压入堆栈称为进栈,SP自动减2,进栈的字就存放在新增加的两个单元内。将一个数从堆栈弹出称为出栈,出栈时,SP自动加2。栈顶随进栈或出栈操作而变化。 堆 栈 堆栈操作指令 格式:PUSH source 功能:将通用寄存器、段寄存器或存储器中的一个字压入栈顶。同时进行修改堆栈指针的操作,即:SP←SP-2 堆栈操作指令 数据交换指令 格式:XCHG dest, source 功能:将源和目的操作数中的内容交换。 注意:交换只能在通用寄存器之间、通用寄存器和存储单元之间进行。即: XCHG REG,REG XCHG REG,MEM XCHG MEM,REG 例如:将数据段中的字变量DATA1和DATA2互换 MOV AX,DATA1

文档评论(0)

开心农场 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档