8086/8088微处理器的系统结构

2023-11-04 07:32

本文主要是介绍8086/8088微处理器的系统结构,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、 8086/8088微处理器的基本结构 

     Intel 8086 微处理器有16位寄存器和16位外部数据总线,20位地址总线,寻址为1MB的地址空间。Intel 8088 微处理器的外部数据总线为8位,其他与8086是一样的。   

 

图一 8086微处理器的结构

 

图一 8086微处理器的结构

 

      从图中可以看出,8086 CPU从功能上划分成两部分:总线接口单元BIU(Bus Interface Unit)和执行单元EU(Execution Unit).   

      BIU作为总线控制单元,负责与存储器及IO接口来传输数据;EU作为执行单元,负责执行指令。具体来说,BIU根据EU的请求,将指令送到指令流队列中排队,为EU提供即将执行的指令;EU从BIU的指令队列取得的指令和数据,来对片外操作数(片外就是指CPU以外存储数据的地方,比如存储器,IO接口等)进行访问的。这样EU与BIU可独立工作,BIU在保证EU与片外传输操作数的前提下,可进行指令预取,与EU可重叠操作。取指部分与执行部分可分开进行,提高CPU的利用率。(8086指令队列出现2个空字节,且EU未占总线,BIU自动取指令填充队列。)

     EU的组成部分:16位通用寄存器组(AX,BX,CX,DX,SP,BP,SI,DI)、算术逻辑单元(ALU)、标志寄存器(FLAG)、操作控制器电路。

     BIU的组成部分:段寄存器组(CS,DS,SS,ES)、指令指针(IP)、地址加法器、指令队列缓冲器、总线接口控制逻辑。

     EU的各个组成部分介绍:

     1. 16位通用寄存器组(AX,BX,CX,DX,SP,BP,SI,DI)

     (1)4个16位通用的数据寄存器:AX、BX、CX、DX,又可以各分为两个8位的寄存器:AL、AH、BL、BH、CL、CH、DL、DH

     其中:

     AX: 具有累加功能,可作16位累加器,AL可作为8位累加器。

     BX: 在基址变址寻址时作为基址寄存器。

     CX: 在循环类与串处理类指令执行时作为默认的计数器寄存器。

     DX: 作为数据寄存器使用,在双字运算中存放高16位数据。

     (2)另外四个地址指针和变址寄存器

     SP(Stack Pointer):堆栈指针寄存器,用来指出堆栈的顶部偏移地址。

     BP(Base Pointer):基地址指针寄存器,在间接寻址时作为基地址寄存器。

     SI(Source Index):源变址寄存器,在间接寻址时作为地址寄存器或变址寄存器。在字符串处理指令中,作为目的变址寄存器。

     DI(Destination Index):目的变址寄存器,在间接寻址时作为地址寄存器或变址寄存器。在字符串处理指令中,作为源变址寄存器。 

     2.算术逻辑单元(ALU)

     它主要完成算术运算、逻辑运算。    

     3.标志寄存器(FLAG)【1】

     它是一个16位的寄存器,用来记录程序中运行结果的状态信息,它们是根据有关指令的运行结果由 CPU 自动设置的。其中9位有定义, 9位中6位表示状态,3位表示控制标志,见图二:   

图二 标志寄存器(FLAG)

图二 标志寄存器(FLAG)     

 

      (1)进位标志(CF):运算指令执行之后,若在最高位上产生进位、借位时,该标志位被置1。 具体地说,两个数相加时,最高位(D15或D7)有进位,或当两个数相减时,最高位有借位,进位标志位被置1,即CF=1;否则CF=0。
     (2)奇偶标志(PF):8086/8088 CPU中采用奇校验,运算指令执行后,运算结果的低8位中含1的位数为偶数时,该标志位被置1,否则被置0。也称为偶标志位。
     (3)辅助进位标志(AF):运算指令执行后。当两个数相加(减)时,当D3有向D4进(借)位时,该标志位被置1,否则被置0。 
     (4) 全零标志(ZF):运算指令执行后,结果的每一位都为零时该标志位被置1。 
     (5) 符号标志(SF):在带符号数运算时,如果运算结果最高位为1,表示结果为负值,SF位被置1,否则SF位被置0。SF也称为负标志位。 
    (6)溢出标志(OF):运算指令执行后,结果的数值产生溢出,该标志位被置1,否则被置0。 
     (7)方向标志(DF):用于字符串指令操作,当DF=0时,字符串处理由低地址向高地址处理;当DF=1时,则从高位地址向低位地址处理。 
     (8)中断允许标志(IF):用来控制可屏蔽硬件中断。当IF=1时8086微处理器可以接受片外来的可屏蔽中断请求,开中断;IF=0时片外来的中断请求被阻止,关中断,也称被屏蔽。 
     (9)陷阱标志(TF):该标志用来控制单步中断。在TF=1时,以单步方式执行程序。即8086每执行完—条指令就产生处理器内部单步中断。单步执行指令可使程序员跟踪指令的执行过程,进行积序的调试。 
     4.操作控制电路

     操作控制电路是8086微处理器的控制核心,首先将指令队列中送来的一条指令进行译码,然后根据不同指令的功能产生出所需要的控制信号来控制各相关功能部件的操作。

 

     BIU的各个组成部分介绍: 

     1.段寄存器组(CS,DS,SS,ES)

     CS:代码段寄存器,存放当前将被执行的程序的段地址。

     DS: 数据段寄存器,存放当前被执行的程序所用操作数的段地址。

     SS:堆栈段寄存器,存放当前被执行的程序所用堆栈的段地址。

     ES:附加段寄存器,存放当前被执行程序所用操作数的段地址。

     其中,DS、SS和ES寄存器的内容可由程序设置,而CS寄存器的内容不能用程序设置。 

     2.指令指针寄存器(IP)

     它主要用来存放将要执行的下一条指令的偏移量,与CS联合形成下一条指令的物理地址。 

     3.地址加法器

     它用来计算物理地址的,物理地址的形成:

                          物理地址 = 段基地址×10H + 偏移量

     8086微处理器有20条地址总线,可寻址1MB的存储器空间。由于8086微处理器是一个16位结构,段寄存器均为16位,这样16位寄存器就无法存放20位地址了。为了解决这个问题,8086内部就设置了一个20位的地址加法器,它首先将16位的段地址左移4位,然后再与16位的偏移地址相加形成20位的物理地址,如图三:

 

图三 物理地址形成示意图

 

图三 物理地址形成示意图 

     举个例子,每当取指令的时,则自动选择代码段寄存器CS,再加上由指令指针寄存器(IP)提供的16位偏移量,按上述方法计算后得到所要取的指令的20位物理地址。 

     4.指令队列缓冲器

     它是一个6B的先进先出缓冲器。8086微处理器具有指令预取功能,当执行部件(EU)不使用总线接口部件与片外进行数据传送,总线接口部件就可以从存储器中读取指令填充指令队列缓冲器。     8088微处理器的指令队列缓冲器只有4B深度。

 

     5.总线接口控制逻辑 

     这部分电路是处理器与外部总线的接口,它首先把已形成的20位地址码经地址线送出片外,然后经数据总线进行操作数或指令代码的传输。操作数送相关寄存器或由相关寄存器送到片外,而指令代码从片外存储器读入到指令队列等待译码执行。

 

二、8086/8088微处理器的存储器管理

 

      8088/8086CPU有20条地址总线,可寻址1MB的存储器空间。由于8086微处理器是一个16位结构,段寄存器均为16位,16位寄存器就无法存放20位地址了,如何解决这个问题请参见上面的地址加法器的介绍。

     前面说了,8086微处理器是一个16位结构,段寄存器均为16位,那么最大的寻址范围为64K。8086/8088把1M主存空间划分为若干段,每个段由连续的字节单元组成,最大长度为64K(即65536)。每个段可作为独立寻址的逻辑单位,一个段中的代码和数据,可存放在该段内的任意单元中。每个段的起始地址必须能够被16整除,即在20位的段基址中最低4位必须是“0”。每个段首地址的高16位二进制代码就是该段的段号(称段基地址)或简称段地址,段地址存放在段寄存器CS、DS、SS、ES中,对段寄存器设置不同的值来使微处理器的段寄存器指向存储器中不同的段。 【2】

    在程序中设置的段称为逻辑段。各逻辑段的大小按实际需要确定,最大为64KB,实际应用时可小于64KB,其未用空间可再定义为其它段的空间,因而可出现段的重叠。各逻辑段可以是邻接的、间隔的、部分重叠的和完全重叠的。【3】

     在8086/8088微处理器中,描述存储器地址的三个相关术语:物理地址、偏移地址、逻辑地址。

     (1)物理地址:是由8086/8088芯片地址引线送出的20位地址码,它用来参加存储器的地址译码,最终读/写所访问的的一个特定的存储单元。

     (2)偏移地址:某个存储单元相对于该段首地址的差值,用16位二进制代码。

     (3)逻辑地址:是在程序中对存储器地址的一种表示方法:

                           逻辑地址 = 段地址:偏移地址

 

参考资料:

【1】http://www.sgrtvu.net.cn/jx_data/lg_data/czs/wjjk/chapter2_2a.htm

【2】http://www.hljrtvu.com/xbwz/lg/myweb/d2/2.2.htm

【3】http://hi.baidu.com/hyap/blog/item/4fbdeafe3f9c2d375d60086c.html

 

 

 

 

 


 

 

 

 

 

 

这篇关于8086/8088微处理器的系统结构的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/344235

相关文章

【微处理器系统原理和应用设计第六讲】片上微处理器系统系统架构

一、概念辨析 首先来厘清以下概念:微处理器,微控制器,单片机,片上微处理器系统 (1)微处理器:即MPU(Microprocessor Unit),微处理器是一种计算机的中央处理单元 (CPU),通常集成在一个或多个集成电路 (IC) 中。微处理器执行指令,并处理计算机中的数据。微处理器一般不包含存储器、I/O接口等外围组件,通常需要搭配外部芯片(如RAM、ROM、I/O接口等)来构成完整的计

ARM微处理器编程模型与linux驱动开发

文章目录 微处理器指令系统数据类型字节对符号位扩展 ARM体系结构ARM处理器工作模式寄存器异常过程调用标准程序内存划分STM32的使用常用资源GPIO口的使用 GPIO固件库的使用STM固件库Proteus常用元器件中断AD转换 BootLoader的定制: 嵌入式系统上电以后硬件的初始化Linux Kernel定制驱动程序开发:驱动程序的分类设备的属性设备驱动程序的组成Linux驱动程序

编译原理项目——C++实现C语言编译器输出为8086级汇编(代码/报告材料)

完整的材料 代码见文章末尾 以下为核心内容和部分结果 项目介绍 一个小型的c语言编译器,实现的功能如下: 可以定义多个变量,并且能初始化。可以支持基本的加减乘除运算。可以支持带括号的多个变量的四则混合运算。可以支持单行注释和多行注释。可以输出%d格式的整数。可以定义int 类型。可以输出字符串。可以输出2位整数可以支持简单的if{}else{}语句。(大于和小于比较条件)以上支持的语法可以混

多处理器SMP系统结构--SMP结构中的进程调度

多核进程调度中,相关task_struct 结构中代表进程与CPU之间关系的变量 struct task_struct{...int has_cpu, processor;unsigned long cpus_allowed;...} has_cpu:表示当前进程在CPU上正在运行; processor:表示在哪个CPU上运行; cpus_allowed:一个位图变量,其中一位,置1,表示

今晚带你真正认识Linux 系统结构

点击上方“朱小厮的博客”,选择“设为星标” 后台回复"书",获取 来源:r6a.cn/eHBE Linux系统一般有4个主要部分:内核、shell、文件系统和应用程序。内核、shell和文件系统一起形成了基本的操作系统结构,它们使得用户可以运行程序、管理文件并使用系统。 1. linux内核 内核是操作系统的核心,具有很多最基本功能,它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,

【微处理器系统原理与应用设计】微处理器的基本架构之组成原理和系统结构

本文首先讲解微处理器的重要组成部分,之后会穿插数电的知识进行相关功能电路的设计,以达到从理论到实践的效果。 一. 组成原理 1. 运算器  ALU是微处理器中执行所有算术和逻辑操作的部件。主要的功能是加减乘除,与或非异或比较等。(1)其中SRC1和SRC2是源操作数(source operand),代表ALU在运算时的输入数据,两个数据源均可以来自寄存器或者是立即数。 (2)OPR

MAX811LEUS+T 具有低电源电流 带有手动复位输入 微处理器电压监测器

MAX811LEUS+T低功耗微处理器(µP)监控电路用于监控µP和数字系统中的电源。当与5V供电或3V供电电路一起使用时,它们无需外部元件,也不用进行调整,可实现非常可靠的低成本电路。MAX811LEUS+T还提供去抖手动复位输入。 MAX811LEUS+T执行单一功能:每当VCC电源电压下降到预设阈值以下,它们都会将复位信号置位,并在VCC上升到复位阈值以上后将该信号保持置位状态至少140ms

8086汇编指令总结

经过学习,对8086汇编常用指令进行了以下总结: (1).mov : 移动数据 例如: mov ax, 8h ;mov 寄存器,常量mov ax, bx ;mov 寄存器,寄存器mov ax, ds:[0] ;mov 寄存器,内存单元mov ds:[0], ax ;mov 内存单元,寄存器mov ds, ax ;mov 段寄存器

开关电源测试系统方案:系统结构功能、特点、测试项目

为了应对开关电源测试中的复杂挑战,我们推出了NSAT-8000系列开关电源ate测试系统,它以其全面的功能和灵活性,适应了电源产品测试场景,解决了测试难题。   开关电源测试系统   NSAT-8000系列之开关电源测试系统适用于AC/DC和DC/DC开关电源的综合性能测试,为开关电源性能检测提供自动化测试解决方案。   系统由软件和硬件两部分组成,软件的功能主要包括运行测试、

计算机组成与系统结构复习大纲

仅为纲要,知识点待后续文章补充~ 1 概念题 冯·诺伊曼机特点计算机功能部件CPU组成计算机系统层级结构多级层次的存储系统ALU 组成溢出判断DRAM 刷新DRAM 读写周期ROM 及类型主存扩展方法片选及地址分配存储器读写周期Cache 基本原理Cache 替换策略Cache 一致性 / 写策略外围设备分类寻址方式流水线的冒险与处理高级流水线技术中断和异常区别及类别系统总线结构总线分类总