8086的复位与启动 CPU执行指令的步骤

东北大学-计算机硬件技术基础

CPU执行指令的步骤

在这里插入图片描述

取指令 Fetch
指令译码 Decode
执行指令 Execute
回写 Write-back
修改指令指针
  1. 取指令
    将CS和IP的内容通过地址加法器得到指令的物理地址,经地址译码器选址后将指定单元中的指令取入CPU的IR当中。

  2. 译码
    ID对IR中的指令进行译码,分析指令的操作码(执行什么操作)和操作数(具体数,存放位置),以及操作结果的存放位置,并由控制器向存储器,运算器等有关部件发出指令所需要的微命令,如:取操作数,运算等。

  3. 执行:

  • 如果操作数在CPU内部的寄存器中,则直接将操作数送往运算器
  • 如果操作数在存储器中,则由控制器根据指令给出的地址,从指定的存储单元取得操作数,经数据暂存器送往运算器。
  • 如果操作结果要写入存储器,由控制器根据写入地址,将数据经由数据暂存器写入指定的存储单元,或者按照指令要求写入CPU内部的寄存器。
  1. 修改指令指针
    IP的内容自动修正(根据DF来决定加还是减)指向要执行的下一条指令。遇到转移指令时,控制器会把转移地址送入IP来更新内容

RESET信号

当CPU接收到有效的RESET信号且至少维持4个时钟周期,不管之前在执行什么动作,只要正常供电,8086就结束现行操作,进入复位状态,直到RESET信号失效。在复位状态下,CPU内部的各寄存器被置为缺省值。

寄存器复位后默认值
CSFFFFH
IP0000H
DS,SS,ES0000H
FLAGs0000H
指令队列清空
其他寄存器0000H

缺省的CS和IP的内容,通过地址加法器得到FFFF0H,这就是复位后的第一条指令地址。

FFFF0H处存放了一条无条件转移指令,用来转移到固化在主板BIOS里的一段系统程序的入口。这样,系统一旦被启动仍自动进入程序,开始正常工作。

复位时,FR被清空,IF = 0, 此时不接受INTR信号

复位操作时序

在这里插入图片描述

posted @ 2020-03-30 21:27  LanceHansen  阅读(701)  评论(0编辑  收藏  举报