2.微处理器:8088功能结构图【BIU 和 EU】 + 8088【内部各寄存器】的解释 您所在的位置:网站首页 微处理器主要包括哪些接口和装置 2.微处理器:8088功能结构图【BIU 和 EU】 + 8088【内部各寄存器】的解释

2.微处理器:8088功能结构图【BIU 和 EU】 + 8088【内部各寄存器】的解释

2024-07-16 23:12| 来源: 网络整理| 查看: 265

文章目录 8088功能结构:BIU 和 EU8088内部寄存器的类型① 8个通用寄存器数据寄存器:AX,BX,CX,DX地址寄存器:SI,DI,BP,SP ② 4个段寄存器:CS, DS, ES, SS③ 2个控制寄存器:IP, FLAGSIPFLAGS

8088功能结构:BIU 和 EU

8088CPU内部用两个独立的功能部件组成,分别为BIU和EU。 BIU(Bus Interface Unit:总线接口单元) 由段寄存器、IP、指令队列、地址加法器和控制逻辑组成。 BIU的功能是负责从内存中取指令送入指令队列,实现CPU与存储器、I/O接口之间的数据传送。

EU(Execution Unit:执行单元) 由通用寄存器、F寄存器、ALU和EU控制部件组成。 EU的功能是分析指令和执行指令。

在这里插入图片描述 8086CPU内部指令队列由(6)个字节组成

8088内部寄存器的类型

在这里插入图片描述 在这里插入图片描述

① 8个通用寄存器

以下8个16位通用寄存器在一般情况下都具有通用性 提高了指令系统的灵活性 通用寄存器各自具有特定的用法 有些指令中隐含的使用这些寄存器

数据寄存器:AX,BX,CX,DX 在指令执行过程中既可用来寄存操作数,也可用来寄存操作的结果。每一个又可将高八位和低八位分成独立的两个8位寄存器来使用16位数据寄存器主要用于存放数据,也可用来存放地址8位寄存器(AL,AH,BL,BH,CL,CH,DL,DH)只能用于存放数据

AH&AL=AX(accumulator):累加寄存器 常用于运算;在乘除等指令中指定用来存放操作数,另外,所有的1/0指令都使用这一寄存器与外界设备传送数据.

BH&BL=BX(base):基址寄存器 常用于地址索引;

CH&CL=CX(count):计数寄存器 常用于计数;常用于保存计算值,如在移位指令,循环(loop)和串处理指令中用作隐含的计数器.

DHRDL=DX(data):数据寄存器 常用于数据传递。

地址寄存器:SI,DI,BP,SP 在对存储器操作数寻址时,用于形成20位物理地址码的组成部分在任何情况下不能独立地形成访问内存的地址码,因为它们都只有16位访问存储器的地址码由段地址(存放在段寄存器中)和段内偏移地址两部分组成这四个寄存器用于存放段内偏移地址的部分或全部

SP(Stack Pointer)堆栈指针 用于存放堆栈操作(Push\Pop)地址的段内偏移地址 其段地址由段寄存器SS(Stack Segment)提供

BP(Base Pointer)基址指针 在部分间接寻址方式中用于存放段内偏移地址的一部分 含有BP的寻址方式中如果无特殊说明均由段寄存器SS提供 该寻址方式依然是对堆栈区的存储单元寻址

SI(Source Index)源变址寄存器,DI(Destination Index)目的变址寄存器 在某些间接寻址方式中,SI和DI用来存放段内偏移地址的全部或一部分 这组寄存器主要用来存放地址,也可以存放数据

② 4个段寄存器:CS, DS, ES, SS 访问存储器的地址码由段地址和段内偏移地址两部分组成段寄存器用于存放段地址总线接口单元BIU设置四个段寄存器CPU可通过4个段寄存器访问存储器中4个不同的段 每段2^16=64KB

CS(Code Segment)代码段寄存器 存放当前执行程序所在段的地址 CS内容左移四位再加上指令指针IP的内容就是下一条要执行的指令地址

DS(Data Segment)数据段寄存器 存放当前堆栈段的地址 堆栈是存储器中开辟的按先进后出的原则组织的一个特别存储区 堆栈主要用于调用子程序时,保留范围主程序的地址和保存进入子程序要改变其值的寄存器的内容 对堆栈进行操作(压入/弹出)的地址由SS的内容左移加上SP的内容得到

ES(Extra Segment)附加段寄存器 附加段是一个附加数据段 附加段是在进行字符串操作时作为目的区地址使用的,ES存放附加段的段地址,DI存放目的区偏移地址

小结 DS和ES都要由用户程序设置初值 若DS和ES的初值相同,则数据段和附加段重合

③ 2个控制寄存器:IP, FLAGS IP

IP(Instruction Pointer)指令指针

指令指针IP保存下一条要执行指令的偏移地址在用户程序中不能使用该寄存器但可以用调试程序DEBUG中的命令改变其值以改变程序执行地址,用于调试程序某些指令如转移指令、过程调用指令和返回指令等将改变IP的内容 FLAGS

FLAGS 标志寄存器

即处理状态字(PSW)寄存器8086/8088 CPU设计了一个两字节的标志寄存器共9个标志 6个反映前一次涉及ALU操作结果的状态标志 3个控制CPU操作特征的控制标志

在这里插入图片描述

状态标志

CF(Carry Flag) 进位标志 加法时最高位产生进位时等于1,否则等于0 减法时最高位产生错位时等于1,否则等于0 对字节操作最高位是D7 对字操作最高位是D15   PF(Parity Flag) 奇偶标志 如果操作结果低八位中含有偶数个1则等于1,否则等于0   AF(Auxiliary Carry Flag) 辅助进位标志 加法时D3有进位则为1,否则为0 减法时D3有错位则为1,否则为0 该标志位用于实现BCD码算数运算结果的调整   ZF(Zero Flag) 零标志 如果运算结果各位都是0,则等于1,否则等于0   SF(sign Flag) 符号标志 总是和运算结果的最高位相同 字节操作最高位是D7 字操作最高位是D15 在补码运算时最高位时符号位,所以结果为负时SF=1,反之为0   OF(Over Flow) 溢出标志 当运算结果超出了带符号数所能表示的数值范围即溢出 溢出时OF=1,否则为0 用来判断带符号数运算结果是否溢出 对于加运算次高位进位而最高位没有进位则溢出 对于加运算最高位进位和次高位没有进位则溢出 对于减运算次高位不需要借位但是最高位却需要借位则产生溢出 对于减运算次高位需要借位但最高位不需要借位则溢出

控制标志

DF(Direction Flag) 方向标志 可用指令预置 字符串操作指令执行时受它的控制 DF=0执行串操作指令,变址寄存器地址自动递增 DF=1时变址寄存器地址自动递减 该标志位可控制地址向着增大的方向或减小的方向改变   IF(Interrupt Enable Flag) 中断允许标志 可用指令预置 当IF=1,CPU可相应可屏蔽中断请求 IF=0,CPU不响应可屏蔽中断请求   TF(Trap Flag) 陷阱标志 若TF=1,则CPU处于单步执行指令工作方式 每执行一条指令就自动产生一次类型1的内部中断 IBMPC系统中,用系统调试程序DEBUG时,T命令就是利用这种中断 服务子程序的功能是显示所有寄存器的当前值和将要执行的下一条指令

例题:

在这里插入图片描述 OF: 有符号数时:对最高位进位 和 次高位进位 进行 异或运算, 如果为1则溢出 无符号数时:最高位为1则溢出



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有