- 1、本文档共65页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第2章 8086/8088微处理器 2.1.1 8086/8088的功能结构 8086/8088CPU的内部结构框图如图2.1所示。 从功能上讲,8086/8088CPU分为两部分,即: 总线接口部件BIU(Bus Interface Unit) 执行部件EU(Execution Unit) 8086内部结构 一. 总线接口单元(BIU) 1. 具体功能 负责从内存取指令送到CPU内部的指令队列 CPU执行指令时,配合EU从指定存储单元或I/O口取数据,或把运算结果传送到指定存储单元或I/O口 2. 组成 1) 4个16位段地址寄存器 CS (Code Segment) —代码段寄存器,代码段存放代码 DS (Data Segment) —数据段寄存器,数据段存放数据 SS (Stack Segment)—堆栈段寄存器,堆栈段用作堆栈操作 ES (Extra Segment)—扩展段寄存器,扩展段存放数据 注:8086对存储器采用分段管理,4个段寄存器分别存放4个当前段的起始地址,又称作段基址寄存器。 2) 指令指针寄存器IP (Instruction Pointer) 16位IP存放当前代码段(CS)所要取出的下一条指令的偏移地址 3) 地址加法器∑ 8086用20位地址线寻址1MB内存空间,但其内部寄存器是16位的,因此需要用地址加法器∑根据16位寄存器的值计算出20位物理地址 4) 指令缓冲队列 8086执行指令的同时,会从内存取1条或几条指令,取来的指令就存放在指令队列中,8086执行完一条指令就可立即执行下一条指令,无需轮番的取指令和执行指令,提高了CPU效率; 8086指令队列为6个字节,8088指令队列为4个字节; 5)其他 暂存器:用于与EU通信的内部寄存器 总线控制电路:负责总线操作控制 二、执行单元(EU) 1) 16位算术逻辑单元ALU 主要是加法器,绝大部分指令执行都由加法器完成 2) 4个16位数据寄存器(AX、BX、CX、DX) 可分为8个8位寄存器使用AH、AL、BH、BL、CH、CL、DH、DL 数据寄存器用于存放操作数及中间结果,AX和AL可用作累加操作,因此又称作累加器 3) 4个16位地址指针寄存器:通常用于存放操作数偏移地址 SP (Stack Pointer)— 堆栈指针寄存器,指示堆栈段栈顶位置 BP (Base Pointer) — 基址指针寄存器,指示堆栈段数据区基址 SI (Source Index) — 源变址寄存器,指示数据段源串地址 DI (Destination Index)—目的变址寄存器,指示扩展段目的串地址 4) 标志寄存器 FLAG:存放CPU当前运算结果的状态特征或者控制标志 三、总线接口部件(BIU)和执行部件(EU)的配合 1. 指令队列中出现两个字节为空时,BIU自动按CS和IP值组成20位物理地址,到存储器中取指令,一次取两个字节指令存放到指令队列中 2. EU从BIU指令队列中读取指令 3. 由EU控制电路对指令进行译码分析,指出操作性质及操作对象 4. EU执行指令,如需访问存储器或I/O端口中的数据,则由EU给出数据的16位偏移地址送给BIU 5. BIU由地址加法器∑形成20位绝对物理地址,并传递给存储器 6. 存储器给出数据,BIU通过总线控制电路将其传送到CPU内部总线 7. EU将从内部总线获得数据,并送入ALU进行运算 8. EU运算出的结果,经内部总线送到指定的寄存器或暂存器,若需要将结果送给存储器,则由EU给出偏移地址,请求BIU产生20位实际物理地址,将结果写入存储器 四、寄存器组 1、通用寄存器组 堆栈指针SP:存放当前堆栈段的栈顶指针。堆栈操作指令PUSH和POP就是从SP中得到操作数的段内偏移地址的。 基址指针BP:访问堆栈时的基址寄存器。BP中存放的是堆 栈中某一存储单元的偏移地址,SP、BP通常和SS联合使用来访问堆栈。 源变址指针SI:源变址寄存器 目的变址指针DI:目的变址寄存器。 SI、DI通常在串操作数访问时,提供源操作数和目的 操作数的有效地址。它们还可以用来存放16位的操作数或操 作数的地址。 代码段寄存器CS,指向当前的代码段,指令由此段取出。 堆栈段寄存器SS,指向当前的堆栈段,堆栈操作所需的就是该段存贮单元的内容。 数据段寄存器DS,指向当前数据段,通常用来存放程序变量。 附加段寄存器ES,指向当前附加段,通常也用来存贮数据 。 3、控制寄存器 (1)指令指针IP(Instruction Pointer)。 在总线接口部件BIU中设置了一个16位的指令指针寄存器IP,其作用是用来存放将要执行的下一条指
文档评论(0)