cup内部结构
8086 CUP在内部结构上由哪几部分?其功能是什么
-
总线接口部件 BIU
- 一个 20 位的地址加法器:完成逻辑地址向 物理地址的转换
- 四个十六为段寄存器(cs 代码段,ss 堆栈段,DS 数据段,ES 附加段)
- 一个十六为指针寄存器 IP
- 一个 六 字节的指针队列缓冲器
- 总线控制逻辑电路
- 功能:
- 负责控制存储器与I/O端口信息读写,包括指令获取与排队,操作数存取等
- 形成访问存储器的物理地址
- 访问存储器或 IO 端口以读取操作数参与与 EU 运算或存放运算结果
-
执行部件 EU
- 一个十六位的算数逻辑单元(ALU)
- 八个通用寄存器
- 一个十六位标志寄存器FLAGS
- 一个数据暂存器
- EU 控制电路
- 功能: 负责从指令队列中取出指令,完成指令译码与指令的执行
-
特点:
- BIU 和 EU 即使分工又是合作的两个独立单元部件
- BIU 负责存取指令和数据
- EU负责执行指令,他们的操作是并行的
寄存器组
- 通用寄存器组
- AX ,累加器,IO 获取的内容存储寄存器
- BX,用于存储地址,用于获取到数据段的数据
- CX ,用于存储计数器在串操作和字符操作中计入操作的次数
- DX,存放 IO 端口地址,和在 32 位乘法中存放高 16 位数
- SP 堆栈指针寄存器,指向栈顶的位置
- BP 基址指针寄存器,用于获取到堆栈段中的数据,
- SI 源变址寄存器 ,用于获取 源操作数
- DI 目标变址寄存器,用于获取 目标操作数
- 专用寄存器
- IP 指令指针寄存器
- FR 标志寄存器
- 段寄存器
- CS 代码段寄存器
- DS 数据段寄存器
- SS 堆栈段寄存器
- ES 附加段寄存器
- 寄存器寻址是一些固定的搭配
- CS 与 IP 获取到下一条要执行的指令
- DS 和 ES 与 SI DI BX 搭配 获取到数据
- SS 与 SP BP ,从堆栈段中得到信息,SP 指针指向栈顶 ,BP 是可以获取堆栈段中的指定数据
标志寄存器
包括6个状态标志位, 3个控制标志位
OF | DF | IF | TF | SF | ZF | AF | PF | CF |
---|
状态标志位
- CF 进位标志位
- PF 奇偶校验位: 低 8 位1 的个数, 偶为 1 , 奇为 0
- AF 辅助进位标志位: 低四位向高四位是否产生进位
- ZF 零标志位: 结果为 0 , ZF= 1 , 结果不为零, ZF = 0
- SF 符号标志位 :正为 0 , 负为 1
- OF 溢出标志位 :是否产生溢出 , 溢出为 1 ,不溢出 为 0
控制标志位
- IF 中断允许标志位: 1 为 允许中断, 0 不允许中断
- DF 方向标志位: 0 在传操作指令中,地址自动加一
- TF 跟踪标志位 TF = 1 ,为单步工作方式