欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

8086微处理器

程序员文章站 2022-06-08 22:57:49
...

8086微处理器是16位微处理器,内部运算器和寄存器是16位的,具有20位地址线。
在内部功能逻辑上分为两个处理单元:总线接口单元、执行单元
8086微处理器8086CPU按功能可分为两个独立的部分:总线接口单元BIU(Bus Interface Unit)和执行单元EU(Execution Unit)

BIU:

  1. 完成CPU与存储器之间的信息传送
  2. 总线控制
  3. IO数据传送
  4. 逻辑地址与物理地址进行转换
  5. 从存储器中取指令送至指令流队列排队
  6. 取出执行指令时所需要的操作数,并传送给EU完成运算和操作

EU:

  1. 对来自指令流队列中的指令译码并执行,实施算术逻辑运算操作。

BIU和EU是两个独立的部件,两个可以同时独立进行操作,形成指令流水线结构。

总线接口单元(BIU)

总线接口单元(Bus Interface Unit)的主要组成部件。

1、段寄存器(Segment Register)
段寄存器为分段寻址定位段的位置。存放正在或正待执行的各个段的段首址

  1. CS(Code Segment):代码段寄存器,用于存储程序的指令
  2. DS(Data Segment):数据段寄存器,用于暂存原始数据和处理后的中间结果即最终结果,一般数据段存储局部变量
  3. SS(Stack Segment):堆栈段寄存器,用于形成堆栈区
  4. ES(Extra Segment):扩展段寄存器,和数据段类似,扩展段用于存储全局变量

2、地址加法器(Address Adder)
地址加法器的功能将分段地址转换为物理地址,用于存储器接口访问实际的物理存储器。

段地址:说明逻辑段在存储器中的起始位置,为模16地址:xxxx0H,省略低4位后,可用1个16位数来表示,该地址可被存放在不同的段寄存器CS/SS/DS/ES中。
偏移地址:说明寻址单元距离段首的偏移量,因每段长度不超过64KB,所以偏移地址也可用1个16位数来表示。

物理地址	=段地址×16D+偏移地址
		=段地址×10H+偏移地址
		=段地址左移4位+偏移地址

3、指令指针寄存器(Instruction Pointer Register)
IP 用以存放一个16位的代码段(程序段)的偏移地址,它与CS的内容合并可以形成一个20位的物理地址,专门用来指向当前要执行的指令单元的位置。 程序计数器由总线接口单元自动改变,始终指向下一节指令。

4、存储器接口(Memory Interface)

5、指针流字节队列(Instruction Stream Byte Queue)

执行单元(EU)

执行单元(Execution Unit)的主要组成部分。

1、控制器(Controller)
从指针流字节队列顺序读取指令,根据指令译码控制8086中其他部分进行相应操作,以实现指令要求的功能。

2、逻辑算术单元(Arithmetic/Logic Unit)
16位逻辑算术单元,根据控制器的控制,可完成8位或16位的二进制算术运算和逻辑运算
,实现对数据的处理。

3、标志寄存器(Flag Register)
标志寄存器F又称程序状态字寄存器PSW,是用以记录或存放状态标志和控制标志信息的。
①状态标志位(ZF、SF、PF、OF、CF、AF):用以记录当前运算结果的状态信息。

  1. ZF(零标志位) 若当前运算结果为0,则ZF=1;若当前运算结果为1,则ZF=0。
  2. SF(符号标志位) 若当前运算结果为负数,则SF=1;若当前运算结果为正数,则SF=0。
  3. PF(奇偶标志位) 若当前运算结果为奇数个"1",PF=0;若当前运算结果为偶数个"1",则PF=1。
  4. OF(溢出标志位) 若当前运算结果产生溢出,则OF=1;反之,OF=0。
  5. CF(进位标志位) 若当前运算出现进位或借位,则CF=1;反之,CF=0。
  6. AF(辅助标志位) 若当前运算出现第3位向第4位进位或借位,则AF=1;反之,AF=0。

[注]
(1)状态标志位的设置一般是由CPU根据当前程序运行结果的状态自动完成的。
(2) 状态标志位信息一般用作后续条件转移指令的转移控制条件。

②控制标志位(TF、IF、DF):用以存放控制CPU工作方式的标志信息。

  1. TF(跟踪标志位) 当TF=1时,CPU每执行完一条指令就产生一个内部中断,处于暂停状态;当TF=0时,CPU处于正常工作状态。
  2. IF(中断允许标志位) 当IF=1时,允许CPU响应外部中断INTR的请求;当IF=0时,不允许CPU响应外部中断请求。
  3. DF(方向标志位) 当DF=0时,CPU执行串操作指令时,对SI、DI进行加操作;反之,对SI、DI进行减操作。

[注] 控制标志位的设置是由系统程序或用户程序中的指令来完成的。

4、通用寄存器组(General Purpose Resgister Set)

① 数据寄存器

共AX、BX、CX、DX四个,每个寄存器即可作为16位寄存器,又可拆分为两个8位寄存器,此时记为AH、AL、BH、BL等。

  1. AX(AH、AL):累加器accumulator
  2. BX(BH、BL):基址寄存器base
  3. CX(CH、CL):计数寄存器counter
  4. DX(DH、DL):数据寄存器data

②指针和变址寄存器

共BP、SP、SI、DI四个

  1. SP(Stack Pointer):堆栈指针寄存器,指示栈顶
  2. BP(Base Pointer):基址指针寄存器,默认表示堆栈段基地址
  3. SI(Source Index):源变址寄存器
  4. DI(Destination Index):目的变址寄存器
相关标签: 8086