- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[工学]第 2 章 80X86微处理器
第 2 章 8086微处理器 2.2 8086的功能结构 8086的功能结构如图2-1所示。 8086CPU从功能上来说分成两大部分:总线接口单元BIU(Bus Interface Unit)和执行单元EU(Execution Unit)。 BIU负责8086CPU与存储器之间的信息传送。具体地说,即BIU负责从内存的指定单元取出指令,送至指令流队列中排队(8086的指令流队列是6个字节);在执行指令时所需的操作数,也由BIU从内存的指定区域取出,传送给EU部分去执行。 EU部分负责指令的执行。其中主要由数据寄存器、指针寄存器与算术逻辑单元(ALU)组成。这样,取指部分与执行指令部分是分开的,于是在一条指令的执行过程中,就可以取出下一条(或多条)指令,在指令流队列中排队。在一条指令执行完以后就可以立即执行下一条指令,减少了CPU为取指令而等待的时间,提高了CPU的利用率,提高了整个运行速度。 如前所述,在8080与8085以及标准的8位微处理器中,程序的执行是由取指和执行指令的循环来完成的。即执行的顺序为取第一条指令,执行第一条指令;取第二条指令,执行第二条指令;……直至取最后一条指令,执行最后一条指令。这样,在每一条指令执行完以后,CPU必须等待到下一条指令取出来以后才能执行。所以,它的工作顺序如图2-2所示。 但在8086中,由于BIU和EU是分开的,所以,取指和执行可以重叠进行。它的执行顺序如图2-3所示。 于是就大大减少了等待对取指所需的时间,提高了CPU的利用率。一方面可以提高整个程序的执行速度,另一方面又降低了与之相配的存储器的存取速度的要求。这种重叠的操作技术,过去只在大型机中才使用称为流水线,在X86系列系列微处理器中得到了广泛的使用与提高。 2.3 8086微处理器的执行环境 本节描述汇编语言程序员看到的8086处理器的执行环境。它描述处理器如何执行指令及如何存储和操作数据。执行环境包括内存(地址空间)、通用数据寄存器、段寄存器、标志寄存器(EFLAGES)和指令指针寄存器等。 2.3.1 基本执行环境概要 在8086处理器上执行的程序或任务都有一组执行指令的资源用于存储代码、数据和状态信息。这些资源构成了8086处理器的执行环境。 ? 地址空间。8086处理器上运行的任一任务或程序能寻址1MB字节的线性地址空间。 ? 基本程序执行寄存器。八个通用寄存器、四个段寄存器、标志寄存器FLAGS和IP(指令指针)寄存器组成了执行通用指令的基本执行环境。这些指令执行字节、字整型数的基本整数算术运算,处理程序流程控制,对字节串进行操作并寻址存储器。 ? 堆栈(stack)。为支持过程或子程序调用并在过程或子程序之间传递参数,堆栈和堆栈管理资源包含在基本执行环境中。堆栈定位在内存中。 ? I/O端口。8086结构支持数据在处理器和输入输出(I/O)端口之间的传送。 8086处理器的基本执行环境如图2-4所示。 2.3.2 基本的程序执行寄存器 处理器为了应用程序编程提供了如图2-4所示的14个基本程序执行寄存器。 这些寄存器能分组如下: ? 通用寄存器。这八个寄存器能用于存放操作数和指针。 ? 段寄存器。这些寄存器最多能保存四个段选择字。 ? FLAGS(程序状态和控制)寄存器。FLAGS寄存器报告正在执行的程序的状态,并允许有限地(应用程序级)控制处理器。 ? IP(指令指针)寄存器。IP寄存器包合下一条要执行的指令的16位指针。 1.通用寄存器 八个16位通用寄存器AX、BX、CX、DX、SI、DI、BP和SP用于处理以下项: ? 逻辑和算术操作的操作数; ? 用于地址计算的操作数; ? 内存指针。 虽然所有这些寄存器都可用于存放操作数、结果和指针,但在引用SP寄存器时要特别小心。SP寄存器保持堆栈指针,通常不要用于其它目的。 这些通用寄存器中的前四个,即AX、BX、CX、DX通常称为数据寄存器,用以存放操作数。后四个,即SI、DI、BP、SP通常称为指针寄存器。虽然它们也可以存放操作数,但主要用作地址指针。数据寄存器AX、BX、CX和DX又可以分别作为AH、BH、CH和DH(高字节)以及AL、BL、CL和DL(低字节)8位寄存器引用,如图2-5所示。 SP是堆栈指针,它与段寄存器SS一起确定在堆栈操作时,堆栈在内存中的位置。用BP(Base Pointer Register)寻址堆栈操作数时,也是寻址堆栈段。SI(Source Index Register)和DI(Destination Index Register)常用于串操作。 2.段寄存器 段寄存器(CS
文档评论(0)