微处理器是具有CPU的所有功能的集成电路,但是它不能单独使用,因为与微控制器不同,它没有存储器或外围设备。
8086里面没有RAM或ROM。但是,它具有用于存储中间结果和最终结果的内部寄存器,并通过系统总线与位于其外部的存储器进行接口。
在8086的情况下,它是40引脚双列直插式封装IC中的16位Integer处理器。
内部寄存器(存在于芯片中)的大小指示处理器一次可以处理多少信息(在本例中为16位寄存器),以及处理器如何在芯片内部内部移动数据,有时也称为“内部”。内部数据总线。
8086为编程人员提供了14个内部寄存器,每个内部寄存器16位或2字节宽。
内存分段:
- 为了提高执行速度和获取速度,8086分段了内存。
- 它的20位地址总线可以寻址1MB的内存,它将其分成4个64kB段。
- 8086仅可在整个1MB内存中使用四个64KB段。
英特尔8086的内部体系结构分为两个单元:总线接口单元(BIU)和执行单元(EU)。这些解释如下。
1.总线接口单元(BIU):
它通过系统总线提供8086与外部存储器和I / O设备的接口。它执行各种机器周期,例如内存读取,I / O读取等,以在内存和I / O设备之间传输数据。
BIU执行以下功能-
- 它生成20位物理地址用于存储器访问。
- 它从内存中获取指令。
- 它在内存和I / O之间来回传输数据。
- 维护6字节的预取指令队列(支持流水线)。
BIU主要包含4个段寄存器,指令指针,预取队列和地址生成电路。
指令指针(IP):
- 它是一个16位寄存器。它保留了代码段中下一条指令的偏移量。
- 提取每个指令字节后,IP递增。
- 每当发生分支指令时,IP都会获得一个新值。
- CS乘以10H得到代码段的20位物理地址。
- 下一条指令的地址计算为CS x 10H + IP。
例子:
CS = 4321H IP = 1000H
then CS x 10H = 43210H + offset = 44210H
这是指令的地址。
代码段寄存器:
CS保留代码段的基址。所有程序都存储在代码段中,并可以通过IP进行访问。
数据段寄存器:
DS保留数据段的基地址。
堆栈段寄存器:
SS保留堆栈段的基地址。
额外的段寄存器:
ES保留额外段的基地址。
地址生成电路:
- BIU具有物理地址生成电路。
- 它使用以下公式使用段和偏移地址生成20位物理地址:
Physical Address = Segment Address x 10H + Offset Address
6字节预取队列:
- 它是一个6字节队列(FIFO)。
- 在执行当前指令的同时获取下一条指令(通过CS的BIU)称为流水线操作。
- 每当发生分支指令时都会刷新。
2.执行单位(欧盟):
EU的主要组件是通用寄存器,ALU,专用寄存器,指令寄存器和指令解码器以及标志/状态寄存器。
- 从BIU中的队列中获取指令,使用ALU解码并执行算术和逻辑运算。
- 发送控制信号,以进行微处理器内部的数据传输操作。
- 向BIU发送请求信号以访问外部模块。
- 它相对于T状态(时钟周期)而不是机器周期进行操作。
8086具有四个16位通用寄存器AX,BX,CX和DX。在执行期间存储中间值。这些每个都有两个8位部分(较高和较低)。
- AX寄存器:
它在乘法和除法运算期间保存操作数和结果。也是String操作期间的累加器。 - BX寄存器:
它在间接寻址模式下保存内存地址(偏移地址)。 - CX寄存器:
它保存着诸如循环,旋转,移位和字符串操作之类的指令的计数。 - DX寄存器:
它与AX一起用于在乘法和除法过程中保存32位值。
算术逻辑单元(16位):
执行8位和16位算术和逻辑运算。
专用寄存器(16位):
- 堆栈指针:
指向堆栈顶部。堆栈位于堆栈段中,用于PUSH,POP,CALL,RET等指令。 - 基本指针:
BP可以保存堆栈段中任何位置的偏移地址。它用于访问堆栈的随机位置。 - 来源索引:
在字符串操作期间,它在数据段中保存偏移地址。 - 目的地索引:
在字符串操作期间,它将偏移地址保存在Extra Segment中。
指令寄存器和指令解码器:
EU从队列中获取操作码到指令寄存器中。指令解码器对其进行解码,并将信息发送到控制电路以执行。
标志/状态寄存器(16位):
它具有9个标志,可帮助更改或识别微处理器的状态。
6个状态标志:
- 进位标志(CF)
- 奇偶校验标志(PF)
- 辅助进位标志
- 零标志(Z)
- 签名
- 溢出标志(O)
每次进行算术和逻辑运算后,状态标志都会更新。
3个控制标志:
- 陷阱标志(TF)
- 中断标志(IF)
- 方向旗(DF)
可以使用控制指令(例如CLC,STC,CLD,STD,CLI,STI等)来设置或重置这些标志。
控制标志用于控制某些操作。