版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、,8086CPU的基本性能指标: (1)16位微处理器; (2)采用高速运算性能的HMOS工艺制造,芯片上集成了2.9万只晶体管; (3)使用单一的+5V电源,40条引脚双列直插式封装(DIP); (4)时钟频率为5MHz10MHz,基本指令执行时间为 0.3ms0.6ms (5)16根数据线和20根地址线,可寻址的地址空间达1MB (6)8086可以和浮点运算器、输入/输出处理器或其他处理器组成多处理器系统,从而极大地提高了系统的数据吞吐能力和数据处理能力。,第2章 8086系统结构,8086是Intel系列的16位微处理器,采用HMOS工艺,内部包含29000个晶体管。同时, Intel还
2、推出了准16位微处理器8088(内部总线16位,外部总线8位)。主要用于兼容当时的外围接口芯片。 8086CPU内部结构框图如下页图所示。从图中可以看出,8086CPU有两部分组成,指令执行部件EU和总线接口部件BIU。,2-1 8086CPU的结构,外部 总线,图2.1.1 8086CPU内部结构框图,一、8086CPU的内部结构 8086CPU有两部分组成,指令执行部件EU和总线接口部件BIU。 1. 总线接口部件BIU(Bus Interface Unit) 功能: 总线接口部件BIU是CPU与外部(存储器和I/O口)的接口,它提供了16位双向数据总线和20位地址总线,完成所有的外部总线
3、操作。具有地址形成、取指令、指令排队、读/写操作数、总线控制等功能。 组成:4个16位段地址寄存器(CS、DS、ES、SS) 16位指令指针寄存器IP 20位物理地址加法器 6字节指令队列 总线控制器,BIU的特点: 8086/8088的指令队列分别为6/4个字节,在执行指令的同时,可从内存中取出后续的指令代码,放在指令队列中,可以提高CPU的工作效率。地址加法器用来产生20位物理地址。8086可用20位地址寻址1M字节的内存空间,而CPU内部的寄存器都是16 位,因此需要由一个附加的机构来计算出20位的物理地址,这个机构就是20位的地址加法器。 例如:CS0FE00H,IP0400H,则表示
4、要取指令代码的物理地址为0FE400H。,2020/10/5,合肥学院电子系,6,2. 指令执行部件EU(Execution Unit),功能:指令执行部件EU完成指令译码和指令执行的工作。 组成:算术逻辑单元ALU 标志寄存器PSW 4个16位通用寄存器(AX、BX、CX、DX) 4个16位专用寄存器(BP、SP、SI、DI) EU控制器,3. BIU与EU的动作协调原则 总线接口部件(BIU)和执行部件(EU)按以下流水线技术原则协调工作,共同完成所要求的信息处理任务: (1)每当8086的指令队列中有1个空字节时,BIU就会自动把指令从存储器取到指令队列中。其取指的顺序是按指令在程序中出
5、现的前后顺序。 (2)每当EU准备执行一条指令时,它会从BIU部件的指令队列前部取出指令的代码,然后用几个时钟周期去执行指令。在执行指令的过程中,如果必须访问存储器或者IO端口,那么EU就会请求BIU,进入总线周期,完成访问内存或者IO端口的操作;如果此时BIU正好处于空闲状态,会立即响应EU的总线请求。如BIU正将某个指令字节取到指令队列中,则BIU将首先完成这个取指令的总线周期,然后再去响应EU发出的访问总线的请求。,(3)当指令队列已满,且EU又没有总线访问请求时,BIU便进入空闲状态。 (4)在执行转移指令、调用指令和返回指令时,由于待执行指令的顺序发生了变化,则指令队列中已经装入的字
6、节被自动消除,BIU会接着往指令队列装入转向的另一程序段中的指令代码。 BIU与EU两者的工作是不同步的,8086可以在执行指令的同时,进行取指令代码的操作,即BIU与EU是一种并行工作方式,改变了以往计算机取指令译码执行指令的串行工作方式,大大提高了工作效率。,总结: BIU状态: (1)将指令按序取入指令队列(指令队列中只要有两个以上空,就取指令); (2)响应EU的总线周期,完成访问存储器、I/O口; (3)空闲状态(指令队列不空,也无EU的总线的请求)。 EU状态: (1)从BIU指令队列前部取出指令,经指令译码后,执行指令; (2)访问存储器、I/O口,向BIU提出总线周期申请; (
7、3) BIU指令队列空时,EU处于等待状态。,2020/10/5,合肥学院电子系,10,4. 80X86CPU的寄存器,8086CPU的寄存器可分为通用寄存器、指针和变址寄存器、段寄存器指令指针及标志寄存器。 (1) 通用寄存器(见教材P25表2-1) 8086有4个16位的通用寄存器(AX、BX、CX、DX),可以存放16位的操作数,也可分为8个8位的寄存器(AL、AH;BL、BH;CL、CH;DL、DH)来使用。除了作为通用寄存器外,它们还有专门的用途: AX( Accumulator ):累加器,存放算术运算操作数、结果; BX( Base ):基址寄存器; CX( Count ):计数
8、器寄存器; DX( Data ):数据寄存器。,上面4个16位寄存器都具有通用性,从而提高了指令系统的灵活性。但在有些指令中,这些通用寄存器还各自有特定的用法 ,如下表所示。 表21 寄存器主要用途,(2)指针和变址寄存器 (见教材P25表2-1) 8086有4个16位的指针或变址寄存器( SI 、 DI 、 SP 、 BP )。 SI( Source Index ):源变址寄存器 DI( Destination Index ):目的变址寄存器 SP( Stack Point ):堆栈指针,基址指针 BP( Base Point ):基址指针,指针寄存器 系统中有两个16位的指针寄存器SP和B
9、P. BP 称为基址指针寄存器,用于存放偏移量,通常和SS段寄存器配合使用,在间接寻址中用于定位堆栈段中的内存单元。 SP 称为堆栈指针,用于存放偏移量,只能和SS段寄存器配合使用,且始终指向堆栈的栈顶,在堆栈指令中隐含的使用它来定位栈顶数据。,注:BX称为基址寄存器,可以用于存放偏移量或者是偏移量的一部分(后面介绍指令寻址方式时会详细分析),通常和DS、ES这两个段寄存器配合使用,用于定位数据段或附加段中的内存单元。 变址寄存器 系统中有两个16位的变址寄存器SI和DI,都用于指令的变址寻址方式。 SI 称为源变址寄存器,用于存放偏移量或偏移量的一部分,通常和DS、ES这两个段寄存器配合使用
10、,用于定位数据段或附加段中的内存单元。在串操作指令中,用于指明源串偏移量。 DI 称为目的变址寄存器,用于存放偏移量或偏移量的一部分,通常和DS、ES这两个段寄存器配合使用,用于定位数据段或附加段中的内存单元。在串操作指令中,用于指明目的串偏移量。,(3) 指令指针及标志寄存器 8086的指令指针及标志寄存器包括IP、SP和PSW 3个 16位寄存器。 IP、 PSW是系统中的两个16位控制寄存器。 指令指针寄存器IP IP 用来控制CPU的指令执行顺序,用于存放偏移量,只能和代码段寄存器CS配合使用,可以确定当前所要取的指令的内存地址,且始终指向代码段中下一条将要读取到CPU指令队列的那条指
11、令。 顺序执行程序时,CPU每取一个指令字节,IP自动加1,指向下一个要读取的字节;修改IP中内容的操作是CPU在每读取一条指令到指令队列后自动进行的,使它指向要读取的下一条指令。 跳转指令中可以隐含的修改IP寄存器中的内容。,标志寄存器 PSW 标志寄存器PSW(处理器状态字),用来存放8086/8088CPU在工作过程中的状态。 PSW为16位寄存器,其中共有9个标志位,可分成两类:一类为状态标志,一类为控制标志。 状态标志:表示前一步操作(如加、减等)执行以后,ALU所处的状态,后续操作可以根据这些状态标志进行判断,实现转移; 控制标志:可以通过指令人为设置,用以对某一种特定的功能起控制
12、作用(如中断屏蔽等),反映了人们对微机系统工作方式的可控制性。 PSW中各标志位的安排如下表所示。,PSW是按位操作的。可以通过转移指令来判断标志位的变化,从而实现程序中的分支结构或者循环结构。 PSW中各标志位含义如下: 状态标志:6个 CF进位标志位,实现加法(或减法)时,当最高位出现进位(或借位) ,CF位自动置1,反之置0。 PF奇偶标志位,当运算结果的低8位中l的个数为偶数时,则PF位自动置1,反之为0( 和单片机相反)。 AF半进位标志位,实现加法(或减法)时,当低四位向高四位有进位(或借位), AF位自动置1。通常用于对BCD算术运算结果的调整。 例如:1101 1000+101
13、0 1110=1 1000 0110其中AF1,CF1 ZF零标志位,运算结果为0时, ZF位自动置1,否则清0。 SF符号标志位,当运算结果的最高位为1, SF自动位置1,否则清0。即与运算结果的最高位相同。,OF溢出标志位,OF溢出的判断方法如下: 加法运算: 若两个加数的最高位为0,而和的最高位为1,则产生溢出; 若两个加数的最高位为1,而和的最高位为0,则产生溢出; 两个加数的最高位不相同时,不可能产生溢出。 减法运算: 若被减数的最高位为0,减数的最高位为1,而差的最高位为1,则产生溢出; 若被减数的最高位为1,减数的最高位为0,而差的最高位为0,则产生溢出; 被减数及减数的最高位相
14、同时,按两数的大小判断溢出。 如果所进行的运算是带符号数的运算,则溢出标志恰好能够反映运算结果是否超出了8位或16位带符号数所能表达的范围,即字节运算大于十127或小于128时,字运算大于十32767或小于32768时,该位置1,反之为0。,例如: 0101 0100 0011 1001 0100 0101 0110 1010 1001 1001 1010 0011 CF0、AF1、PF1、ZF0、SF1、OF1(两正数相加结果为负) 一般来讲,不是每次运算后所有的标志都改变,只是在某些操作之后,才对其中某个标志进行检查。 控制标志:3个 TF陷阱标志位(单步标志位、跟踪标志)。当TF位置1时
15、,将使8086/8088进入单步工作方式,通常用于程序的调试。 IF中断允许标志位,若IF位置1,则处理器可以响应可屏蔽中断,否则就不能响应可屏蔽中断。 DF方向标志位,若DF位置1,则串操作指令的地址修改为自动减量方向,反之,为自动增量方向。,(1)CF标志位的实用价值: a. 如果用户需要进行多字节无符号数的算术运算,那么 CF标志就是低位字节和高位字节间进位和借位的桥梁。 8086/8088CPU提供的指令,能够直接处理的最大无符号数就是一个字(16位),如果超出这个范围,就必须使用多字节来表示要计算的数据。 这个原理不光只在8086/8088芯片中有,任何芯片,无论它处理的数据范围多么
16、大,它总是一个有限的单位,如果超出这个单位,就必须使用标志位作为运算的中介。 b. 在执行移位指令时, CF标志用于存放移出位的值。 例如对01010011实行逻辑右移,即把这个字节中的每一位向右移动一位,左边空出的那一位置为0,以前最右边那一位就被移出字节范围外了,那么这一位就是移出位,移出位都是保存在 CF中的。这个例子中,移位完成后, CF应该等于1。 c. CF标志位还能够为一些条件转移指令提供判别依据。 例如JC指令,它就是先判别CF标志位的值,如果CF=1,就跳转到指令中给出地址继续执行程序,如果 CF=0,就不作跳转,CPU会顺序执行下一条指令。也就是说,在程序中,可以根据CF标
17、志取值的不同来实现程序的分支或循环结构。,(2)奇偶标志位PF(Parity Flag): 如果CPU所执行的指令要影响PF标志,并且该指令得到的数据结果低8位中含有偶数个“1”时,PF=1;含有奇数个“1”,PF=0。 注意无论指令的操作数有多么长,只有低8位数据中1的个数能够影响到PF标志的取值。 PF标志位的实用价值: 这个标志位对于校验操作是很有用的。这里以对ASCII码的校验来说明它的应用,ASCII码占用一个字节,但是只有低7位是真正的码值,最高位是校验位。如果使用奇校验,那么必须保证编码字节中始终保持有奇数个“1”,这种编码格式可以通过调整最高位的取值来实现,如果ASCII码中已
18、经有奇数个“1”,那么第7位应取值为0;如果ASCII码中仅有偶数个“1”,那么第7位应取值为1,使“1”的个数变为奇数。 现在,试设想计算机通过网络接收ASCII码,如何判断收到的编码是否正确呢?那就需要判断收到的字节中是否为奇数个“1”,如果为偶数个“1”,那么收到的编码一定是错误的,必须要求重新发送。 在判断“1”的个数时,PF标志的作用就体现出来了。通过PF标志也可以使用条件转移指令来实现程序中的分支或循环结构。 通过奇偶校验码能够识别大部分经常出现的错码,但是并不能完全避免错码。关于编码机制可以参见计算机组成原理中的相关内容,这里不作详细的介绍。,(3)辅助进位标志位AF: AF标志
19、,又称半进位标志,在CPU执行算术运算指令时,如果该指令要影响AF标志,并且用户把操作数看作无符号数,AF标志才有意义。 如果低字节中的低4位向高4位产生进位或借位时(也就是第3位向第4位产生进位或借位),AF被置为1;否则,AF被置为0。 判别标准: 和CF一样,使用无符号数的加减运算来作判断,只是判断进位和借位的位置不在操作数的最高位,而是在低字节的第3位。 实用价值: AF标志的使用主要针对二-十进制调整(用二进制算术运算实现十进制算术运算的功能) ,单纯的二进制运算中,几乎不使用AF标志。 使用二进制数表示十进制数-BCD码是用4位二进制数表示1位十进制数。我们知道,4位连续的二进制数
20、实际上是一位十六进制的数位,在运算中是逢16进1或借1。如果能够通过某种调整机制把它变为逢10进1或借1,那么就可以使用二进制运算来实现十进制运算。 AF标志位对于实现这种二-十进制调整机制是必不可少的,它就是用于表达一个字节中低4位向高4位的进位或借位情况的。,(4)零值标志位ZF: 如果CPU执行的指令要影响ZF标志,并且保证ZF标志是有意义的,那么当指令得到的结果数据各位全为“0”时,则ZF置“1”,否则ZF置“0”。 实用价值: ZF标志的使用主要是进行比较,并根据比较的结果来进行程序的分支或循环。例如,对两个整数进行比较,即对两个整数进行相减的操作,如果两个数是相等的,那么结果为0,
21、ZF=1;如果不等,那么结果非0,ZF=0。 比较的范围可以很广阔,不仅限于无符号数、补码,还可以对字符或者某些特定的编码进行比较。和ZF标志相关的条件转移指令也很多,具体的应用示例在以后的课程中会遇到很多。 (5)符号标志位SF: 如果CPU执行的指令要影响SF标志,并且用户把指令得到的结果数据看作带符号数,那么当结果为负数时,SF置“1”;当结果为正数时,SF置“0”。即SF标志位的取值和结果数据的最高位是一致的,因为补码的最高位就是符号位。 实用价值: 主要用于对算术运算结果的符号进行判断,只有针对带符号的运算才是有意义的,可以通过两个带符号数经过减法运算后所得结果符号来判断哪一个数更大
22、或者更小,从而结合条件转移指令来实现程序的分支或循环。 在8086/8088指令系统中有与SF标志直接相关的条件转移指令,这就比判断结果数据的最高位要方便得多。,(6)溢出标志位OF: 如果CPU执行算术运算指令,并且用户把操作数看作带符号数时,OF标志位的取值才有意义。如果运算结果超出了补码的表示范围(对字节来说,是-128到127,对字来说,是-32768到32767),那么解释为溢出,OF置为1;如果运算结果没有超出补码的表示范围,OF置为0。,b. 正数+正数: 若结果为正数,表示符号位没有丢掉,也就是没溢出:OF=0; 若结果为负数,表示符号位已经丢失,结果已经溢出:OF=1; (等
23、价运算:正数-负数) 因为出现溢出时,参加运算的两个原始补码都没有超过表示范围,如果运算中超出了表示范围,只会是符号位超出了表示范围一位(只能是一位,不会多于一位),所以符号位丢没丢掉的问题和溢出问题是等价的,硬件逻辑也就是通过判断符号位有没有丢失来判断运算有没有溢出。,a. 正数+负数: OF=0(等价运算:正数-正数; 负数-负数) 这种情况一定没有溢出,负数和正数是相互抵消的,得到的结果会比两个原始数据中较大的一个更靠近数轴的原点,所以一定不会超出定义的补码表示范围。,OF标志位的取值逻辑如下:,带符号数的加减运算可能出现的各种组合都可以等价替换为上面三种情况。 因为出现溢出时,参加运算
24、的两个原始补码都没有超过表示范围,如果运算中超出了表示范围,只会是符号位超出了表示范围一位(只能是一位,不会多于一位),所以符号位丢没丢掉的问题和溢出问题是等价的,硬件逻辑也就是通过判断符号位有没有丢失来判断运算有没有溢出。,c. 负数+负数: 若结果为负数,表示符号位没有丢掉,也就是没溢出:OF=0; 若结果为正数,表示符号位已经丢失,结果已经溢出:OF=1; (等价运算:负数-正数),实用价值: 主要用于实现程序分支或循环,8086/8088指令系统中有单独使用OF标志位的条件转移指令,可以实现对溢出现象的判断和分支处理;也有结合使用OF标志和SF标志的条件转移指令,使用这些转移指令可以根
25、据两个带符号数比较大小的结果来实现分支处理。这些细节将在介绍条件转移指令时详细介绍。,TF标志为用户单步调试自己的程序提供了相应的硬件基础。如果使用指令将TF标志清0,那么将会使CPU退出单步运行模式,回到连续执行机器指令的状态。,(7)单步(或跟踪)标志位TF:,前面讲到的标志位都属于状态标志位,是指令根据自己的执行情况而为后续指令留下的一些可供参考的状态信息。TF标志位是一个控制标志位,和前面所讲的标志位功能不同,它是用于触发单步中断的。,如果使用指令将TF标志位置为1,那么CPU将进入单步执行指令的工作方式,每执行完一条指令就会触发单步中断,执行单步中断服务程序,一般会在屏幕上显示CPU
26、内部各寄存器和标志位的状态,以便用户观察该指令产生的影响。进入中断时,TF标志会自动被清0,所以中断服务程序的执行并不会出现单步执行的情况,中断服务程序结束后TF标志会恢复中断以前的设置。,实用价值: 使用户能够单步跟踪和调试机器指令组成的程序。,作为一个用户可设置的开关,可以控制CPU是否处理可屏蔽中断,在程序执行不允许被打断的情况下,可以采用这个开关来屏蔽可屏蔽中断。,(8)中断标志位IF:,这也是一个控制标志位,用于控制CPU是否处理可屏蔽中断。 如果使用指令将IF标志置为1,那么CPU将会处理任何可屏蔽中断,如果使用指令将IF标志置为0,那么CPU将不会处理可屏蔽中断。,实用价值:,例
27、如,某些对执行时间要求非常严格的程序段,执行这种程序段时就不允许被中断打断,因为中断处理会添加额外的处理时间。 注意,IF标志只能屏蔽可屏蔽中断,对于一些由严重错误或故障引起的不可屏蔽中断则是无法屏蔽的。,对于标志寄存器PSW中的标志位,一些标志位直接有条件转移指令与之对应,能够方便的通过这些标志位实现程序的分支或循环结构。一些标志位没有直接可用的条件转移指令与之对应,但是仍然可以用其他方法来进行判断,从而实现分支或循环结构。关于哪些指令具体会对哪些标志位产生何种影响,以及如何在程序设计中正确的使用标志位,将会在后面的课程中逐步熟悉起来。,(9)方向标志位DF:,这也是一个控制标志位,用于控制
28、串操作指令存取数据的方向。如果使用指令将DF标志置为0,每执行完一次串操作以后,源串地址指针SI和目的串地址指针DI中的内容会自动递增;如果使用指令将DF标志置为1,那么每执行完一次串操作以后,SI和DI中的内容会自动递减。,实用价值:,使用该控制标志,可以由用户来选择串操作指令存取数据的方向。串操作指令是一种特殊的指令,它能对一串相同类型的数据作相同的一次处理,比使用循环结构的程序效率更高,因为串操作指令的循环是在指令内部完成的,而循环结构的程序要完成循环需要执行多条指令。,功能:段寄存器的内容与有效的地址偏移量一起,可确定内存的物理地址。通常CS划定并控制程序区,DS和ES控制数据区,SS
29、控制堆栈区。,(4)段寄存器,段:内存中一段连续的空间,在程序中具有特定的用途。 段基址:段在内存中的起始地址 = 段基值 16 (左移4位) 8086CPU系统中共有4个16位段寄存器,用于存放程序所要使用的4个存储段的段基值,分别对应于内存中的四块存储区域,代码段CS、堆栈段SS、数据段DS、附加段ES。,2020/10/5,合肥学院电子系,29,代码段:用于存放程序的机器指令序列; 堆栈段:用于存放程序使用堆栈指令所保存的数据,自动保存的断点等信息; 数据段:存放程序直接使用的数据; 附加段:其中的内容不确定,可以由程序开发人员根据实际需要自己决定。,每个程序都可能会使用这样四个段,其中
30、代码段是必须的,实用的程序通常至少包含代码段、堆栈段、数据段。,代码段寄存器CS (Code Segment) 数据段寄存器DS (Data Segment) 堆栈段寄存器SS (Stack Segment) 附加段寄存器ES (Extra Segment),2020/10/5,合肥学院电子系,30,2-2 8086的引脚信号和功能,如下页图所示,是8088/8086CPU的外部结构,即引脚信号图。,8088/8086CPU芯片都是40引脚双列直插式(DIP)封装的集成电路芯片,其中32个引脚在两种工作模式下的名称和功能是相同的,还有8个引脚(24-37) 在不同的工作模式下,具有不同的名称和
31、功能。,8086和8088的外部引脚信号,2020/10/5,合肥学院电子系,32,1. 两种模式下,名称和功能相同的32个引脚,(1)VCC、GND:电源、接地引脚,8088/8086CPU采用单一的+5V电源,但有两个接地引脚。,(3)A19/S6A15/S3(Address Status Bus)(输出、三态):高4位地址/状态复用信号输出引脚(4条),分时输出地址的高4位及状态信息。 S6 保持“0” 用以指示8086/8088CPU当前与总线连通; S5 为状态寄存器中断允许标志的状态,它在每个时钟周期开始时修改,若当前允许可屏蔽中断,则S5置1,若S5 =0,则禁止一切可屏蔽中断;
32、,(2)AD15AD0(Address Data Bus)(双向、三态):地址/数据复用信号输入/输出引脚(16条),分时输出低16位地址信号及输入/输出数据信号。通过时间上区分:T1状态输出低16位地址信号,然后外部地址锁存, T3状态输入/输出数据信号。,S4、S3共有四个组态,用以指明当前使用的段寄存器,如下表所示。,(4)NMI(Non-Maskable Interrupt)、INTR(Interrupt Request) NMI为非屏蔽中断请求信号输入引脚,高电平有效,上升沿触发,CPU必须在当前指令结束后响应该中断,不受可屏蔽中断允许标志IF的限制,不能用软件屏蔽。 INTR为可屏
33、蔽中断请求信号输入引脚,电平触发,CPU在指令的最后一个周期采样INTR ,在当前指令结束后响应该中断,可用软件通过复位内部中断允许标志IF 来屏蔽INTR信号的中断请求。,(6)CLK(Clock)(输入) :系统时钟信号输入引脚,时钟信号的方波信号,占空比约为33%,即1/3周期为高电平,2/3周期为低电平,8088/8086的时钟频率(又称为主频)为4.77MHz,即从该引脚输入的时钟信号的频率为4.77MHz。 8086-1时钟频率为10MHz, 8086-2时钟频率为8MHz。,(7)RESET( Reset ) (输入) :复位信号输入引脚,高电平有效。8088/8086CPU要求
34、复位信号至少维持4个时钟周期才能起到复位的效果,复位信号输入之后,CPU结束当前操作,进行复位操作,并对微处理器的标志寄存器PSW、IP、DS、SS、ES寄存器及指令队列进行清零操作,而将CS设置为0FFFFH。,(8)READY(Ready):“准备好”状态信号输入引脚,高电平有效,“Ready”输入引脚接收来自于内存单元或I/O端口向CPU发来的“准备好”状态信号,表明内存单元或I/O端口已经准备好进行读/写操作。该信号是协调CPU与内存单元或I/O端口之间进行信息传送的联络信号。 CPU在T3(或TW )状态采样Ready信号,当Ready=0(无效),则在T3(或TW )状态结束后插入
35、TW状态(等待周期),当Ready=1(有效),进入T4状态,完成数据传送。,2020/10/5,合肥学院电子系,36,(10)MN/MX(Minimum/Maximum Model Control) :最小/最大模式设置信号输入引脚,该输入引脚电平的高、低决定了CPU工作在最小模式还是最大模式,当该引脚接+5V时,CPU工作于最小模式下,当该引脚接地时,CPU工作于最大模式下。,(11)BHE/S7(Bus High Enable/Status)(输出、三态):高8位数据总线允许/状态复用信号复用输出引脚。分时输出BHE有效信号(表示高8为数据线D15D8上的数据有效)和S7 状态信号,但S
36、7未定义任何实际意义。,BHE信号与A0信号配合,控制数据传送时的字、字节方式。具体规定如下表所示。,表 BHE和A0的代码组合和对应的操作,2020/10/5,合肥学院电子系,38,2. 最小模式下的24-31引脚,(1)M/IO (Memory/Input and Output):存储器I/O端口控制输出信号,是CPU区分进行存储器访问还是I/O访问的输出控制信号。 M/IO=1,选择访问存储器(表示CPU与存储器之间进行传送数据); M/IO=0,选择访问I/O端口(表示CPU与之间I/O端口进行传送数据)。,(2)INTA(Interrupt Acknowledge)(输出):中断响应
37、信号输出引脚,低电平有效,该引脚是CPU响应中断请求后,向中断源发出的认可信号,用以通知中断源,以便提供中断类型码。该信号为两个连续的负脉冲,在每个总线周期的T2、T3(TW)状态INTA有效。 第一个负脉冲:通知外部I/O接口,它发出的中断请求已得到允许。 第二个负脉冲:外部I/O接口收到第二个负脉冲后,往数据总线上送自己的中断类型码,从而CPU得到了有关此中断源的详细信息。 (3)ALE(Address Lock Enable)(输出):地址锁存允许输出信号引脚,高电平有效,在任何一个总线周期的T1状态,ALE有效。CPU通过该引脚向地址锁存器8282发出地址锁存允许信号,把当前地址/数据
38、复用总线上输出的地址信息锁存到地址锁存器8282中去。注意:ALE信号不能被浮空。 (4)DEN(Data Enable)(输出、三态):数据允许输出信号引脚,低电平有效,当AD15-AD0作为数据总线使用时,DEN作为外部数据发送器8286的选通信号,表示CPU当前准备发送或接收一个数据。在访问存储器、I/O端口或中断响应周期时DEN有效。,(5)DT/R(Data Transmit/Receive) (输出、三态):数据收发控制信号输出引脚,CPU通过该引脚发出控制数据传送方向的控制信号,在使用8286/8287作为数据总线收发器时,DT/R信号用以控制数据传送的方向,DT/R=1,表示发
39、送(数据由CPU经总线收发器8286/8287输出); DT/R=0 ,表示接收(数据由外设经总线收发器8286/8287输入到CPU )。 (6)WR( Write ) (输出、三态):写控制信号输出引脚,低电平有效,与M/IO配合实现对存储单元、I/O端口进行写操作的控制。P34 表2-6 注:读RD、写WR信号不能同时有效。 (7)HOLD(Hold Request)(输入): 总线保持请求信号输入引脚,高电平有效。当系统中的其它总线部件要求占用总线时,向CPU发出总线请求信号,使HOLD=1,有效。 (8)HLDA(Hold Acknowledge) (输出):总线保持响应信号输出引脚
40、,高电平有效。当CPU监测到HOLD有效时,就在当前总线周期T4状态从HLDA引脚向外设发出应答信号(HLDA=1),同时使CPU与AB、DB、CB总线浮空,总线请求部件收到HLDA信号后,获得总线控制权( HOLD=1,HLDA=1 )。,在总线占有部件用完总线后,置HOLD=0无效,CPU检测到HOLD=0后,使HLDA=0,CPU又重新获得AB、DB、CB总线控制权。 3. 最大模式下的24-31引脚 当8088/8086CPU的引脚MN/MX接地时,CPU处于最大模式下,这时候剩余的2431共8个引脚的名称及功能如下: (1) QS1、QS0(Instruction Queue Sta
41、tus)(输出):指令队列状态信号输出引脚,这两个信号的组合给出了前一个T状态中指令队列的状态,以便于外部对8086CPU内部指令队列的动作跟踪,如下表所示:,(2)S2、S1、S0(Bus cycle status)(输出):总线周期状态信号输出引脚,低电平有效,这些信号组合起来,可以指出当前总线周期中,所进行数据传输过程的类型,总线控制器8288利用这些信号来产生对存储单元、I/O端口的控制信号。S2、S1、S0与具体物理过程之间的对应关系,如下表所示。,有源状态:对于 S2、S1、S0的组合来说,在前一个总线周期的T4状态和本总线周期的T1和T2状态中,至少有一个信号为0(低电平),每种
42、组合都对应一个具体的总线操作,称为有源状态。 无源状态:在总线周期的T3和TW状态且READY1时, S2S1S0=111(全为高电平),此时一个总线操作即将结束,另一个总线周期还未开始,称为无源状态。 在无源状态时,若S2、S1、S0其中任一信号的改变,都意味着一个新的总线周期的开始。 (3)LOCK (Lock)(输出、三态):总线封锁输出信号引脚,低电平有效。当该引脚输出低电平时,系统中其它总线部件不能占用系统总线。 LOCK信号是由指令前缀LOCK产生的,在LOCK前缀后面的一条指令执行完毕之后,便撤消LOCK信号。此外,在8086的2个中断响应脉冲之间 LOCK信号也自动变为有效的低
43、电平,以防止其它总线部件在中断响应过程中,占有总线而使一个完整的中断响应过程被中断。,(4)RQ/GT0、RQ/GT1(Request/Grant)(双向):总线请求信号输入/总线允许信号输出引脚。这两个信号端可供CPU以外的两个处理器,用来发出使用总线的请求信号和接收CPU对总线请求信号的应答。这两个引脚都是双向的,请求与应答信号在同一引脚上分时传输,方向相反。其中RQ/GT1比RQ/GT0的优先级低。 4. 8086/8088CPU的引脚分类 (1)数据/地址复用线、地址线、地址/状态复用线:AD0AD7 、AD8AD15、A16A19/S3S6 (2)电源、地:VCC、GND(2个) (
44、3)最小模式下与地址总线有关的信号:ALE (4)最小模式下与数据总线有关的信号:DEN、DT/R、BHE/S7 (5)最小模式下与CPU有关的控制信号:RESET、CLK、TEST、READY、HOLD/HLDA (6)最小模式下与存储器、I/O操作有关的信号:M/IO、RD、WR (7)最小模式下与中断有关的信号:NMI、INTR、INTA (8)最小/最大模式选择信号:MN/MX,2020/10/5,合肥学院电子系,45,(9)最大模式下总线周期状态信号: S2、S1、S0 (10)最大模式下指令队列状态信号: QS1、QS0 (11)最大模式下总线请求信号/总线请求允许信号: RQ/G
45、T1、RQ/GT0 (12)总线封锁信号:LOCK,2020/10/5,合肥学院电子系,46,2-3 8086存储器组织,一、存储器地址的分段 1.存储器地址的分段,由于CPU内部的寄存器都是16位的,为了能够提供20位的物理地址,8086系统中采用了存储器分段的方法。规定存储器的一个段为64KB,由段寄存器来确定存储单元的段地址,由指令提供该单元相对于相应段起始地址的16位偏移量。这样,系统的整个存储空间可分为16个互不重叠的逻辑段,如左下图所示。,存储器的每个段的容量为64KB,并允许在整个存储空间内浮动,即段与段之间可以部分重叠、完全重叠、连续排列,非常灵活,如右下图所示。,2020/1
46、0/5,合肥学院电子系,47,2. 存储容量,8086系统有20根地址总线,因此,它可以直接寻址的存储器单元数为220=1MB,这1MB的存储器单元按照00000FFFFFH来编址。,3. 逻辑地址(LA)和物理地址(PA),逻辑地址:是在程序中使用的地址,它由段地址和偏移地 址两部分组成(16位)。 逻辑地址的表示形式为“段地址:偏移地址”。 例如:2000H:0100H。,物理地址: 8086可直接寻址1MB的存储空间,其地址区域为00000HFFFFFH ,与存储单元一一对应的20位地址,我们称之为存储单元的物理地址。就是存储器的实际地址,它是指CPU和存储器进行数据交换时所使用的地址(
47、20位)。,2020/10/5,合肥学院电子系,48,物理地址是由段地址与偏移地址共同决定的,段地址来自于段寄存器(CS、DS、ES、SS),是十六位地址,由段地址及偏移地址计算物理地址的表达式为:,物理地址 = 段地址 16 + 偏移地址,例如:系统启动后,指令的物理地址由CS的内容与IP的内容共同决定,由于系统启动的CS=0FFFFH,IP=0000H,所以初始指令的物理地址为0FFFF0H,我们可以在0FFFF0H单元开始的几个单元中,固化一条无条件转移指令的代码,即转移到系统初始化程序部分所在存储器的地址位置处。,5. 存储器分段组织带来存储器管理的新特点,偏移地址是某存储单元相对其所
48、在段起始位置的偏移字节数,或简称偏移量。它是一个16位的地址,根据指令的不同,它可以来自于CPU中不同的16位寄存器(IP、SP、BP、SI、DI、BX等)。,在程序代码量、数据量不是太大的情况下,可使它们处于同一段内,即使它们在64KB的范围内,这样可以减少指令的长度,提高指令运行的速度。 内存分段为程序的浮动分配创造了条件。 物理地址与逻辑地址并不是一一对应的,举例:6832H:1280H,物理地址为695A0H。 各个分段之间可以重叠 。,4. 偏移地址,8088/8086系统中,有些内存区域的作用是固定的,用户不能随便使用,如:,(3)启动区:FFFF0HFFFFFH共16个单元,用以
49、存放一条无条件转移指令的代码,转移到系统的初始化部分。,(2)显示缓冲区:B0000HB0F9FH约4000(25802)字节,是单色显示器的显示缓冲区,在存放文本方式下,用于显示字符的ASCII码及属性码;B8000HBBF3FH约16K字节,是彩色显示器的显示缓冲区,在存放图形方式下,用于屏幕显示像素的代码。,(1)中断矢量区:00000H003FFH共1K字节,用以存放256种中断类型的中断矢量,每个中断矢量占用4个字节,共2564=1024=1K,6. 特殊的内存区域,2020/10/5,合肥学院电子系,51,二、8086存储器的分体结构,在组成与8086CPU连接的存储器时,1M字节
50、的存储空间实际上被分成两512K字节的存储体,分别叫高位库和低位库。低位库固定与8086CPU的低位字节数据线D7D0相连,因此又可称它为低字节存储体,该存储体中的每个地址均为偶地址。高位库与8086CPU的高位字节数据线D15D8相连,因此又称它为高字节存储体,该存储体中的每个地址均为奇地址,如下页图所示。,存储器是按字节进行组织的,两个相邻的字节被称为一个“字” 。存放的信息若是以字节(8位)为单位的,将在存储器中按顺序排列存放;若存放的数据为一个字(16位)时,则将每一个字的低字节(低8位)存放在低地址中,高字节(高8位)存放在高地址中,并以低地址作为该字的地址。,2020/10/5,合
51、肥学院电子系,54,如果一个16位数据,高8位数据存储在存储器的奇地址单元中,低8位数据存储在存储器的偶地址单元中,则读写该数据需要一个总线周期。,如果一个16位数据,高8位数据存储在存储器的偶地址单元中,低8位数据存储在存储器的奇地址单元中,则读写该数据需要两个总线周期。第一个总线周期用于在奇地址中完成低8位数据的传送,然后IP自动加1;第二个总线周期用于在偶地址中完成高8位数据的传送;这些是8086自动完成的。所以,这种情况下,除增加一个总线周期外,其余与从偶地址开始的16位数据的操作是一样的。,2020/10/5,合肥学院电子系,55,三、堆栈的概念,堆栈:在存储器中开辟一段区域,用于存
52、储一些暂时需要保护而以后还要用到数据(如中断现场的保护与恢复、子程序现场的保护与恢复等),这个区域称为堆栈。,功能:主要用于保护中间数据、子程序的现场、中断程序的现场等。,堆栈的特点:,堆栈存储数据的原则为后进先出。 堆栈在存储器中的位置由SS:SP确定。 SP指令可由MOV指令设置。 堆栈指针SP在8086系统中始终指向栈的顶部,即:始终指向最后压入栈中的数据的地址。 8086系统中栈的操作是以字为单位的。执行一次入栈操作, SP-2,直至SP=0( SS )栈满为止。执行一次出栈操作, SP+2。见教材P39 图2-13,1统一编址 又称“存储器映射方式”。在这种编址方式下 ,I/O端口地
53、址置于1MB的存储器空间中,在整个存储空间中划出一部分空间给外设端口 ,端口和存储单元统一编址。如:6502、6800.,优点:端口所需的地址线较少,地址译码器较简单,采用专用的I/O指令,端口操作指令执行时间少,指令长度短 。 缺点:输入输出指令类别少,一般只能进行传送操作。,2独立编址 又称“I/O映射方式”。这种方式的端口单独编址构成一个I/O空间,不占用存储器地址空间。如:8086,优点:无需专门的I/O指令,对端口操作的指令类型多,从而简化了指令系统的设计。 缺点:端口占用存储器的地址空间,使存储器容量更加紧张,同时端口指令的长度增加,执行时间较长,端口地址译码器较复杂。,四、808
54、6的I/O编址,8086系统采用独立编址方式。有专用的I/O指令(IN、OUT)。8086允许有64K(65536个)8位的I/O端口,两个编号相邻的8位端口可以组成一个16位端口。指令系统中既有访问8位端口的I/O指令,又有访问16位端口的I/O指令。,8086CPU执行访问I/O端口指令时,硬件上产生M/IO=0、RD( 或WR )=0有效。端口地址不占用存储空间,端口地址独立编址构成I/O空间。其特点是:I/O指令类型少,只能进行传送操作; M/IO 、 RD( 或WR )两组信号,信号线根数多。,8086系统和外设之间都是通过I/O接口芯片联系的,每个I/O接口芯片都有一个或几个端口,
55、一个端口往往对应芯片内部的一个或一组寄存器,微机系统要为每个端口分配一个地址,此地址也称为端口号。各个端口号不能重复。,3. 8086的I/O编址,2020/10/5,合肥学院电子系,58,2-4 8086系统配置,为了适应各种使用场合,在设计8088/8086CPU芯片时,就考虑了其应能够使它工作在两种模式下,即最小模式与最大模式。,最小模式(最小工作方式 ),最大模式(最大工作方式 ),(2)输入/输出协处理器8089,在原理上有点象带有两个DMA通道的处理器,它有一套专门用于输入/输出操作的指令系统,但是8089又和DMA控制器不同,它可以直接为输入/输出设备服务,使主处理器不再承担这类
56、工作。所以,在系统中增加8089协处理器之后,会明显提高主处理器的效率,尤其是在输入/输出操作比较频繁的系统中。,与8088/8086CPU配合工作的协处理器有两类:,(1)数值协处理器8087,它能实现多种类型的数值运算,如高精度的整型和浮点型数值运算,超越函数(三角函数、对数函数)的计算等,这些运算若用软件的方法来实现,将耗费大量的机器时间。换句话说,引入了8087协处理器,就是把软件功能硬件化,可以大大提高主处理器的运行速度。,一、 8086/8088最小系统中的外围芯片简介 1. 锁存器Intel 8282(或74LA373) P44 图2-16 8282是典型的8位锁存器,8位输入(
57、DI0-DI7), 8位输出(DO0-DO7),选通输入信号(锁存输入信号)STB,输出数据允许信号OE(低电平有效)。74LS373作为锁存器,其用法与8282完全一样。 8282与8086连接时,作为8086外部地址锁存器,8086有20条地址线,加上高8位数据允许引脚BHE,共21条线,需要3片8282。8282的输入与8086的地址线A19-A16、AD15-AD0和BHE相连,输出即为8086系统的地址线和BHE;8282的STB接8086的ALE,8282的OE接地,直接数据输出允许。 P43 图2-15,2. 总线收发器Intel 8286/8287 P44 图2-17 8286
58、是Intel系列典型的8位总线收发器,8位输入(A0-A7), 8位输出(B0-B7)。 T为控制数据传送方向信号,T=1时, A0-A7为输入, B0-B7为输出; T=0时, B0-B7为输入, A0-A7 为输出。输出数据允许信号OE(低电平有效)。 8286与8086连接时,作为8086外部总线收发器,8086有16条数据线,需要2片8286。8286的输入与8086的地址线AD15-AD0相连,输出即为8086系统的数据总线;8286的T接8086(或8288)的DT/R,8286的OE接8086 (或8288)的DEN。P41 图2-14,2020/10/5,合肥学院电子系,62,3. 时钟发生器8284,Fosc=14.318MHz Fclk=4.77MHz Fpclk=2.385MHz,3. 时钟发生器8284 (1)输入:晶振与复位 晶振接8284的X1、X2引脚(F/C接低电平,选择外界晶振产生时钟),外部复位接RES引脚。 (2)输出:CLK(时钟)、RESET(复位)、READY(准备好) 8284输出的时钟频率CLK为外界晶振频率的1/3。 CLK、 RESET、 READY分别为8086系统提供时钟、复位、准备好信号。 (3)外部复位的接法(上电复位,按键复位),如下图所示。,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 肌肤小吊瓶使用技巧总结
- 浙江省杭州北干2025-2026学年下学期初三数学试题调研测试卷含解析
- 脊髓损伤患者的康复护理质量控制
- 2026年浙江省金华市婺城区市级名校初三中考模拟考数学试题含解析
- 浙江省绍兴市重点名校2026年初三十六模物理试题含解析
- 广西钦州市达标名校2026届高中毕业生五月供题训练(二)物理试题含解析
- 淮南市重点中学2025-2026学年初三临门一脚强化训练模拟考试数学试题试卷含解析
- 浙江省杭州市江干区重点达标名校2025-2026学年初三下学期自测卷(四)线下考试数学试题含解析
- 人格障碍患者的持续护理与随访
- 股骨颈手术后的疼痛管理
- 教育学原理课件全套课件
- 产权交易平台设计与运行管理方案
- 混凝土路面换板施工技术方案详解
- 幼儿大班认识建筑
- 新工厂安全培训内容简要课件
- 园艺学进展课程课件
- 产品设计文档撰写规范案例示范版
- 蒸汽工程安装方案(3篇)
- 颅内动脉急诊取栓技术
- 2025年四川大学教育培训部业务岗工作人员招聘考前自测高频考点模拟试题附答案详解
- 江苏省2025年接受高级访问学者的高等学校
评论
0/150
提交评论