微处理器 - 8086 个功能单元


8086微处理器分为两个功能单元,即EU(执行单元)和BIU(总线接口单元)。

欧盟(执行单位)

执行单元向BIU发出指令,说明从哪里获取数据,然后解码并执行这些指令。其功能是使用指令译码器和ALU来控制对数据的操作。如上图所示,EU与系统总线没有直接联系,它通过BIU对数据进行操作。

现在让我们讨论8086微处理器的功能部分。

算术逻辑单元

它处理所有算术和逻辑运算,如 +、−、×、/、OR、AND、NOT 运算。

标志寄存器

它是一个 16 位寄存器,其Behave类似于触发器,即它根据累加器中存储的结果改变其状态。它有 9 个标志,分为 2 组 - 条件标志和控制标志。

条件标志

它表示最后执行的算术或逻辑指令的结果。以下是条件标志列表 -

  • 进位标志- 该标志指示算术运算的溢出情况。

  • 辅助标志- 当在 ALU 执行操作时,会产生从低半字节(即 D0 – D3)到高半字节(即 D4 – D7)的进位/转位,然后设置此标志,即由 D3 位给出的进位到D4是AF标志。处理器使用此标志执行二进制到 BCD 的转换。

  • 奇偶校验标志- 该标志用于指示结果的奇偶校验,即当结果的低8 位包含偶数个1 时,则设置奇偶校验标志。对于奇数个 1,奇偶校验标志被重置。

  • 零标志- 当算术或逻辑运算的结果为零时,该标志设置为 1,否则设置为 0。

  • 符号标志- 该标志保存结果的符号,即当运算结果为负时,符号标志设置为 1,否则设置为 0。

  • 溢出标志- 该标志表示超出系统容量时的结果。

控制标志

控制标志控制执行单元的操作。以下是控制标志列表 -

  • 陷阱标志- 用于单步控制并允许用户一次执行一条指令进行调试。如果设置了,则程序可以单步运行。

  • 中断标志- 这是一个中断启用/禁用标志,即用于允许/禁止程序中断。对于中断允许条件,它设置为 1;对于中断禁止条件,它设置为 0。

  • 方向标志- 用于字符串操作。顾名思义,当它被设置时,字符串字节将从较高的内存地址访问到较低的内存地址,反之亦然。

通用寄存器

共有8 个通用寄存器,即AH、AL、BH、BL、CH、CL、DH 和DL。这些寄存器可以单独使用来存储8位数据,也可以成对使用来存储16位数据。有效寄存器对是 AH 和 AL、BH 和 BL、CH 和 CL、DH 和 DL。分别称为AX、BX、CX、DX。

  • AX 寄存器- 也称为累加器寄存器。它用于存储算术运算的操作数。

  • BX 寄存器- 用作基址寄存器。它用于存储数据段内内存区域的起始基地址。

  • CX 寄存器- 称为计数器。它在循环指令中用于存储循环计数器。

  • DX 寄存器- 该寄存器用于保存 I/O 指令的 I/O 端口地址。

堆栈指针寄存器

它是一个 16 位寄存器,保存从段开头到最近在堆栈上存储字的内存位置的地址。

BIU(总线接口单元)

BIU 负责 EU 总线上的所有数据和地址传输,例如发送地址、从内存中获取指令、从端口和内存读取数据以及将数据写入端口和内存。EU 与系统总线没有直接连接,因此可以通过 BIU 实现这一点。EU和BIU与内部总线连接。

它具有以下功能部分 -

  • 指令队列- BIU 包含指令队列。BIU 获取最多 6 个字节的下一条指令并将它们存储在指令队列中。当 EU 执行指令并准备好执行下一条指令时,它只需从该指令队列中读取指令即可,从而提高执行速度。

  • 在当前指令执行时获取下一条指令称为流水线操作

  • 段寄存器- BIU 有 4 个段总线,即 CS、DS、SS 和 ES。它保存内存中指令和数据的地址,处理器使用这些地址来访问内存位置。它还包含1个指针寄存器IP,它保存EU要执行的下一条指令的地址。

    • CS - 它代表代码段。它用于寻址存储器代码段中存储可执行程序的存储器位置。

    • DS - 它代表数据段。它由程序使用的数据组成,并通过偏移地址或保存该偏移地址的其他寄存器的内容在数据段中访问。

    • SS - 它代表堆栈段。它在执行期间处理内存来存储数据和地址。

    • ES - 它代表额外段。ES是附加数据段,字符串用它来保存额外的目标数据。

  • 指令指针- 它是一个 16 位寄存器,用于保存下一条要执行的指令的地址。