第六章8086指令系统.doc

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

第6 章8086 指令系统 6. 1 概 述 6. 1. 1 指令的基本内容 6. 1. 2 8086 指令的基本格式 6. 1. 3 8086 CPU 的寻址方式 6. 2 8086CPU 指令系统 6. 2. 1 数据传送类指令 6. 2. 2 算术运算类指令 6. 2. 3 逻辑运算与移位类指令 6. 2. 4 串操作类指令 6. 2. 5 控制转移类指令 6. 2. 6 处理器控制指令 第6 章8086 指令系统 8086 指令系统是所有X86 系列CPU 的指令系统的基础, 80286、80386 乃至Pentium 等新型CPU 的指令系统仅仅是在这个基础上做了一些扩充。用8086 指令系统编写的程序同样可以在80286、80386、80486、Pentium 等CPU 上执行。本章先介绍了程序、指令、指令系统等基本概念, 然后重点介绍了8086CPU 指令的格式、寻址方式、各类指令功能和用法等基本知识。这些指令种类和形式繁多, 功能和格式各异, 我们列举了一些具体的例子, 以便更好地学习和掌握有关的指令, 进而为程序设计的学习打好基础。 6. 1 概 述 6. 1. 1 指令的基本内容 1. 指令的概念 微处理器通过执行程序来完成指定的任务, 而程序是由完成一个完整任务的一系列有序指令组成的, 指令是指示计算机进行某种操作的命令, 指令的集合称为指令系统。不同系列的微处理器, 有不同的指令系统。指令是根据CPU 硬件特点研制出来的, 指令的符号用规 定的英文字母组成, 称为助记符, 用助记符表示的指令称为汇编语言指令或符号指令。后面介绍的指令全都是用助记符书写的。 2. 指令的组成 计算机中的指令由操作码和操作数两部分构成。操作码也称指令码, 它表示这条指令要进行的是什么样的操作, 而操作数是参加本指令运算的数据。操作数的表现形式比较复杂,可以是参与运算的值, 也可以是参与运算的值的“ 地址”。这里的“ 地址”是广义的, 它既包括我们平常所理解的内存储单元的地址, 也包括微处理器内部的寄存器。 4. 指令的执行 要执行的程序段的指令, 均保存在存储器中, 当计算机需要执行一条指令时, 首先产生这条指令的相应地址, 并根据地址号打开相应的存储单元, 取出指令代码, CPU 根据指令代码的要求以及指令中的操作数, 去执行相应的操作。 6. 1. 2 8086 指令的基本格式 8086 指令的一般格式如下: 操作码[操作数] , [ 操作数] 这里操作码用便于记忆的助记符来表示(一般是英文单词的缩写)。根据指令的不同, 操作数可以是一个, 即单操作数, 也可以是两个, 即双操作数(源操作数和目标操作数) , 有的指令还可以没有操作数或隐含操作数。例如指令MOV AX, DX 中的MOV 是助记符, AX, DX 为操作数(双操作数) , 这条指令的功能是将DX 中的内容送到AX 中。 8086 系统中的操作数主要分为三类: 立即数操作数、寄存器操作数和存储器操作数。 1. 立即数操作数 所谓立即数是指具有固定数值的操作数, 即常数。它可以是字节或字(8 位或16 位) 存放时, 该操作数跟随指令操作码一起存放在指令区, 故又称为指令区操作数。在指令中, 立即数操作数只能用作源操作数, 而不能用作目标操作数。 2. 寄存器操作数 操作数事先存放在某寄存器中(CPU 的通用寄存器、专用寄存器或段寄存器) , 只要知道寄存器的名称(编号) 就可以寻找到操作数。寄存器操作数既可作为源操作数, 又可作为目标操作数。 3. 存储器操作数 约定操作数事先存放在存储器中存放数据的某个单元, 只要知道存储器的地址即可寻到操作数。当然, 操作数也可以存放在堆栈中( 堆栈是存储器的一个特殊区域) , 只要知道堆栈指针, 就可以用栈操作指令寻找操作数。存储器操作数可以是字节、字或双字, 分别存放在1 个、2 个或4 个存储单元中。 6. 1. 3 8086 CPU 的寻址方式 在8086 中, CS、DS、ES 和SS 段寄存器在程序运行过程中分别指向当前的代码段、数据段、附加段和堆栈段。而操作数可能存放在代码段中, 也可能存放在数据段、附加段、堆栈段中, 还可能存放8086CPU 内部的寄存器中。存放操作数的内存单元相对于其所在段的段基址的地址偏移量称为偏移地址或有效地址EA( Effective Addr es s )。获得操作数所在地址的方法称为寻址方式。在8086 系统中, 一般将寻址方式分为两类: 一类是寻找操作数的地址; 另一类是寻找要执行的下一条指令的地址, 即程序寻址, 这将在程序转移指令( JMP) 和调用指令(CALL)中介绍。本节主要讨论针对操作数地址的寻址方式。 1. 立即数寻址 立即数寻址( Immediate A

文档评论(0)

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

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

1亿VIP精品文档

相关文档