微处理器 - 8086 功能单元

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

EU(执行单元)

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

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

ALU

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

标志寄存器

它是一个 16 位寄存器,其行为类似于触发器,即它根据存储在累加器中的结果改变其状态。它有 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 位寄存器,用于保存下一条要执行的指令的地址。