编程结构是指从程序员和使用者的角度看到的结构,亦可成为功能结构。
功能结构 8086/8088由两部分组成,总线接口部件BIU和执行部件EU
BIU负责与存储器及I/O接口之间的数据传送操作。
四个段寄存器
CS DS SS ES
16位的指针寄存器IP
20位地址加法器,产生20位地址
指令队列
8088指令队列4字节(8086为6字节),总线接口部件BIU从内存中去除指令,放在指令队列中;执行部件EU从指令队列中取指令并执行。
总线控制逻辑
发出读写信号,总线控制信号
EU负责指令的执行
通用寄存器
AX BX CX DX
指针和变址寄存器
SP 堆栈指针
BP 基址指针,构成段内偏移量
SI 原变址寄存器
DI 目的变址寄存器
算术逻辑单元(ALU)
标志寄存器
处理器内部是如何工作的?
1.每当取指令队列有空字节时,BIU开始进行取指令操作
2.首先地址加法器根据CS:IP产生20位地址,通过地址总线访问指定的存储器单元,然后由输入/输出控制电路向存储器发出读控制信号。
3. 当存储器得到读控制信号,存储器将指令的存储单元的指令取出,通过数据总线放入指令队列中。
4.每当EU准备执行一条指令时,他会从BIU部件的指令队列前部取出指令的代码,经过译码分析后启动各个运算部件
5.当指令队列已满,且EU又没有总线访问请求时,BIU便进入空闲状态。
6.在执行转移指令、调用指令和返回指令时,实际上是修改CS和IP。由于待执行指令的顺序发生了变化,则指令队列中已经装入的字节被自动消除,BIU会接着往指令队列装入转向的另一程序段的指令代码。
谢谢我的唐老师。