一、8086 CPU内部结构
由两个功能单元组成:EU(执行单元Execution Unit) BIU(总线接口单元Bus Interface Unit)
EU:进行指令的译码和执行 (包括ALU(arithmetic and logic unit),寄存器,EU控制器)
ALU:算术和逻辑运算单元
寄存器:暂存运算信息和标志信息(4个通用寄存器,累加器AX 基址寄存器BX 计数寄存器CX 数据寄存器DX 4个专用寄存器,堆栈指针SP 基址指针BP 源变址寄存器SI 目的变址寄存器DI)
EU控制器:时序控制和取指令控制
Ps.Arithmetic 与Mathematics区别:Arithmetic 译为算术,强调数字之间的运算关系。Mathematics译为数学,指称用量和形来标度世界的一门学问,也包括了数字之间的运算
BIU:负责取指令和数据的读写,是cpu与存储器或I/O口沟通的桥梁
段寄存器(区号):所指向的段称为当前段,总共有4个当前段(代码段寄存器CS 、数据段寄存器DS(与SI对应) 、堆栈段寄存器SS、 附加段寄存器ES(与DI对应))
指令指针IP(市号):待取指令地址
地址加法器:将16位逻辑地址组成20位物理地址
指令队列寄存器:预存指令代码(6个字节)
总线控制器:连接内部和外部总线,发出总线控制信号,实现M/IO读写
二、两个功能单元的协调
8086可以实现EU和BIU并行工作
1、取指
指令队列有两个空字节时,BIU自动取指到队列
2、执行
EU从指令队列取出指令代码、译码并执行。期间EU可通过请求BIU完成读取存储器和IO口。
3、BIU空闲
队列已满并且EU无读写申请时,BLU空闲
4、转移调用
EU执行转移指令,调用指令,转移指令时,BIU自动清空指令队列,并取转移调用后的指令填满队列。
三、其他寄存器
FR:Flag Register 标志寄存器 用来存放标志,分状态标识和控制标志两类,共设置9位
Ps.OF用于判断补码运算是否有效。为0时说明无溢出,即最高位和次高位运算同时进位或借位。运算结果有效