微处理器 - 8086 功能单元



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

EU(执行单元)

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

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

ALU

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

标志寄存器

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

条件标志

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

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

  • 辅助进位标志 - 当在 ALU 上执行运算时,它会导致从低 nibble(即 D0 – D3)到高 nibble(即 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 位寄存器,用于保存要执行的下一条指令的地址。

广告