计算机原理仲崇权2_第1页
计算机原理仲崇权2_第2页
计算机原理仲崇权2_第3页
计算机原理仲崇权2_第4页
计算机原理仲崇权2_第5页
已阅读5页,还剩123页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、大连理工大学控制学院大连理工大学控制学院122.1 8086微处理器功能结构微处理器功能结构2.2 8086对存储器和对存储器和i/o的管理的管理2.3 8086的引脚和工作模式的引脚和工作模式2.4 8086的操作和时序的操作和时序2.1 8086微处理器的功能结构微处理器的功能结构2.1.1 8086微处理器的功能结构微处理器的功能结构2.1.2 总线接口单元总线接口单元2.1.3 执行单元执行单元2.1.4 8086/8088微处理器程序执行过程微处理器程序执行过程32.1.1 8086微处理器的功能结构微处理器的功能结构4一一. 微处理器基本结构微处理器基本结构l算术逻辑单元(算术逻辑

2、单元(arithmetic logic unit, alu) 微处理器的运算器,负责微处理器的运算器,负责cpu的各种运算的各种运算l寄存器组寄存器组 cpu内部的高速存储单元,用来存放临时的数据或内部的高速存储单元,用来存放临时的数据或地址。地址。l指令处理单元指令处理单元 微处理器的控制器,负责微处理器的控制器,负责对指令进行译码和处理。对指令进行译码和处理。5l寄存器组寄存器组 cpu内部的高速存储单元,用来存放临时的数据或内部的高速存储单元,用来存放临时的数据或地址。地址。 从指令的角度来看,可以缩短指令长度和指令的执从指令的角度来看,可以缩短指令长度和指令的执行时间。行时间。通用寄存

3、器:既可以存放数据也可存放地址,使用通用寄存器:既可以存放数据也可存放地址,使用频度较高频度较高地址寄存器:存放地址,用于寻址操作地址寄存器:存放地址,用于寻址操作标志寄存器:保存程序的运行状态标志寄存器:保存程序的运行状态6l指令处理单元指令处理单元微处理器的控制器,负责微处理器的控制器,负责对指令进行译码和处理。对指令进行译码和处理。指令寄存器:暂存被译码的指令指令寄存器:暂存被译码的指令指令译码逻辑:负责对指令进行译码,从而确定指指令译码逻辑:负责对指令进行译码,从而确定指令的功能令的功能时序和控制逻辑:根据指令要求,按照一定的时序时序和控制逻辑:根据指令要求,按照一定的时序收发信号,控

4、制计算机系统完成指令要求的操作。收发信号,控制计算机系统完成指令要求的操作。二二. 8086/8088的功能结构的功能结构 从功能上看,可以分为两大部分:从功能上看,可以分为两大部分:l 总线接口单元总线接口单元biu (bus interface unit):主要主要负责物理地址的形成、预取指令、指令队列排负责物理地址的形成、预取指令、指令队列排队、读队、读/ /写操作数和总线控制。写操作数和总线控制。 l 执行单元执行单元eu (execution unit) :主要负责指主要负责指令译码和执行令译码和执行 8086cpu内部结构框图内部结构框图: 78ahahalalbhbhblblch

5、chclcldhdhdldlaxaxbxbxcxcxdxdxspspbpbpsisididiflagflagalualu1 12 23 34 45 56 6暂存器暂存器cscsdsdssssseses总线总线控制控制逻辑逻辑eueu控控制制暂存器暂存器指令队列指令队列(eu)(eu)执行单元执行单元(biu)(biu)总线接口单元总线接口单元ipip92.1.2 总线接口单元(总线接口单元(biu)一一. biu功能和组成功能和组成lbiu的功能的功能从内存取指令送到指令队列从内存取指令送到指令队列微处理器执行指令时,到指定的位置(内存单微处理器执行指令时,到指定的位置(内存单元或者外设端口)

6、取操作数,并将其送给执行元或者外设端口)取操作数,并将其送给执行单元;或者把执行单元的操作结果送至要求的单元;或者把执行单元的操作结果送至要求的位置中。位置中。lbiu包括:包括:4个个16位段地址寄存器位段地址寄存器1个个16位指令指针寄存位指令指针寄存器器20位地址加法器位地址加法器6字节的指令队列字节的指令队列与与eu通讯的内部寄通讯的内部寄存器存器总线控制逻辑总线控制逻辑10二二. biu的内部组成的内部组成l 1. 段寄存器段寄存器 ds 数据段寄存器数据段寄存器 (data segment) cs 代码段寄存器代码段寄存器 (code segment) es 扩展段寄存器扩展段寄存

7、器 (extra segment) ss 堆栈段寄存器堆栈段寄存器 (stack segment)8086对存储器采用分段管理,对存储器采用分段管理,4个段寄存器分别用个段寄存器分别用于存放于存放4个当前段的起始地址个当前段的起始地址基地址。基地址。 通常用通常用cs、ds、es以及以及ss确定代码段、数据段、确定代码段、数据段、扩展段以及堆栈段的基地址。扩展段以及堆栈段的基地址。段寄存器的内容与有效的偏移地址一起,用于确段寄存器的内容与有效的偏移地址一起,用于确定内存的物理地址。定内存的物理地址。11l 2. 指令指针寄存器指令指针寄存器ip指示代码段中指令的偏移地址,指示代码段中指令的偏移

8、地址,ip指向当前代指向当前代码段码段(cs)所要取出的下一条指令的地址。所要取出的下一条指令的地址。与代码段寄存器与代码段寄存器cs联用,确定下一条指令的物联用,确定下一条指令的物理地址,每取出一个字节指令后,理地址,每取出一个字节指令后,ip自动加自动加1。计算机通过计算机通过cs : ip寄存器来控制指令序列的执寄存器来控制指令序列的执行流程行流程ip寄存器是一个专用寄存器,可以用转移指令、寄存器是一个专用寄存器,可以用转移指令、调用指令及中断和复位等改变调用指令及中断和复位等改变ip值。值。12l 3. 20位地址加法器位地址加法器产生产生20位地址(物理地址)。位地址(物理地址)。c

9、pu内无论是段内无论是段地址寄存器还是偏移量都是地址寄存器还是偏移量都是16位的,通过地址位的,通过地址加法器产生加法器产生20位地址(物理地址)。位地址(物理地址)。段地址左移段地址左移4位位+段内偏移量段内偏移量 20位实际物理地址位实际物理地址 段地址段地址16+段内偏移量段内偏移量 20位实际物理地址位实际物理地址131 2 3 40 0 2 21 2 3 40 0 2 20段基值段基值偏移量偏移量左移左移4位位物理地址物理地址逻辑地址逻辑地址 1 2 3 6 2+)例:例: 设代码段寄存器设代码段寄存器cs的内容为的内容为1234h,指令指,指令指针针ip的内容为的内容为0022h,

10、即,即(cs)1234h,(ip)0022h,则访问代码段存储单元的物理地址计算如,则访问代码段存储单元的物理地址计算如下:下:14l 4. 6字节的指令队列(字节的指令队列(isq)取指令取指令 指令译码指令译码 指令执行,在指令执行时根指令执行,在指令执行时根据需要在存储器中取操作数。据需要在存储器中取操作数。8位微处理器:按照这三步循环工作每次需到位微处理器:按照这三步循环工作每次需到存储器取指令。存储器取指令。16位微处理器:位微处理器:8086微处理器采用预取指令微处理器采用预取指令技术。技术。预取指令技术预取指令技术 提前将指令从存储器取到提前将指令从存储器取到cpu内,每次执行时

11、直内,每次执行时直接从接从cpu内部获得指令。内部获得指令。15 intel 8086(8088)设置有)设置有6(4)个字节的)个字节的isq,当当isq中出现中出现2(1)个字节空时,)个字节空时,cpu中的总线中的总线接口单元将自动完成指令填充,当遇到分支、跳接口单元将自动完成指令填充,当遇到分支、跳转、子程序调用等情况时,转、子程序调用等情况时,isq会自动清空,并会自动清空,并从新的程序位置取出指令进行填充。从新的程序位置取出指令进行填充。 8086采用了采用了流水线(流水线(pipeline)设计技术)设计技术。l 5. 与与eu通讯的内部寄存器通讯的内部寄存器l 6. 总线控制逻

12、辑总线控制逻辑8086以前的以前的cpu采用串行工作方式:采用串行工作方式:1)cpu执行指令时总线处于空闲状态执行指令时总线处于空闲状态2)cpu访问存储器访问存储器(存取数据或指令存取数据或指令)时要等待总线操时要等待总线操作的完成作的完成缺点缺点:cpu无法全速运行无法全速运行解决解决:总线空闲时预取指令,使:总线空闲时预取指令,使cpu需要指令时能立需要指令时能立刻得到刻得到16取指令1执行1取操作数2执行2cpubus忙碌忙碌忙碌忙碌存结果1取指令28086cpu采用并行工作方式采用并行工作方式17biu eubus取指令2 取操作数 存结果取指令3 取操作数 取指令4执行1执行2执

13、行3忙碌忙碌忙碌忙碌忙碌忙碌18l 流水线技术流水线技术总线接口单元总线接口单元(biu)和执行单元和执行单元(eu)不同步不同步工作;工作;每当每当8086的指令队列中有两个空字节,的指令队列中有两个空字节,biu会会自动自动把指令取到指令队列把指令取到指令队列中;中;每当每当eu准备执行一条指令时,会从准备执行一条指令时,会从biu的指令的指令队列前部取出指令的代码,然后用几个时钟周队列前部取出指令的代码,然后用几个时钟周期期执行指令执行指令。 执行指令的过程中,如执行指令的过程中,如需访问存储器或输入需访问存储器或输入/输输出设备出设备,eu请求请求biu进入总线周期进入总线周期,完成访

14、问完成访问操作。如操作。如biu空闲,则响应请求;否则,空闲,则响应请求;否则,biu完完成当前取指令的总线周期,然后响应成当前取指令的总线周期,然后响应eu的访问的访问总线的请求。总线的请求。19指令队列满指令队列满,eu也也没有总线访问没有总线访问时,时,biu进入进入空闲空闲状态。状态。执行转移、调用、返回指令时,要执行的指令不执行转移、调用、返回指令时,要执行的指令不是紧接的指令,而是紧接的指令,而biu往指令队列中装入指令总往指令队列中装入指令总是按顺序进行。此时,指令队列中的原有内容被是按顺序进行。此时,指令队列中的原有内容被自动清除,自动清除,biu会往指令队列中装入另一个程序会

15、往指令队列中装入另一个程序段的指令。段的指令。202.1.3 执行单元(执行单元(eu)1eu的功能与组成的功能与组成l eu的功能的功能从指令队列中取出指令;从指令队列中取出指令;对指令进行译码,发出相应的控制信号;对指令进行译码,发出相应的控制信号;接收由总线接口送来的数据或发送数据至接口;接收由总线接口送来的数据或发送数据至接口;进行算术运算。进行算术运算。leu的组成的组成4个个16位数据寄存器位数据寄存器4个个16位地址指针寄位地址指针寄存器存器16位标志寄存器位标志寄存器16位算术逻辑单元位算术逻辑单元eu控制电路控制电路1个数据暂存寄存器个数据暂存寄存器21二二. eu组成组成l

16、1. 8086的数据寄存器的数据寄存器 ax,bx,cx,dx-都是都是16位,也可做两位,也可做两个个8位寄存器使用(位寄存器使用( ah、al、bh、bl、ch、cl、dh、dl )。)。对其中某对其中某8位的操作,并不影位的操作,并不影响另外对应响另外对应8位的数据位的数据 ;数据寄存器用于存放操作数及数据寄存器用于存放操作数及中间结果,也可以存放地址;中间结果,也可以存放地址; ax和和al可用作累加操作,因可用作累加操作,因此又可称作累加器。此又可称作累加器。22 每每个寄存器又有它们各自的专用目的个寄存器又有它们各自的专用目的 ax累加器累加器,使用频度最高;,使用频度最高;用于算

17、术、逻辑运算存放中间结果;用于算术、逻辑运算存放中间结果;与外设传送信息等与外设传送信息等 bx基址寄存器基址寄存器间接寻址中用于存放基地址间接寻址中用于存放基地址 cx计数器计数器循环和串操作等指令中的隐含计数器循环和串操作等指令中的隐含计数器 dx数据寄存器数据寄存器存放双字长数据的高存放双字长数据的高16位;位;间接寻址的间接寻址的i/o指令中存放外设端口地址指令中存放外设端口地址23l 2. 8086的的16位地址指针寄存器位地址指针寄存器sp-堆栈指针寄存器堆栈指针寄存器bp-基址指针寄存器基址指针寄存器di -目的变址寄存器目的变址寄存器si - 源变址寄存器源变址寄存器地址指针寄

18、存器地址指针寄存器用于存放操作数的地址,编程用于存放操作数的地址,编程时通过修改寄存器的内容达到修改地址的目的。时通过修改寄存器的内容达到修改地址的目的。通过通过地址指针寄存器地址指针寄存器寻址内存内的数据寻址内存内的数据sp为为堆栈指针寄存器堆栈指针寄存器,指示栈顶的偏移地址,指示栈顶的偏移地址, sp不能再用于其他目的,具有专用目的不能再用于其他目的,具有专用目的24bp为为基址指针寄存器基址指针寄存器,表示数据在表示数据在堆栈段中一堆栈段中一个数据区的基地址个数据区的基地址,sp和和bp寄存器与寄存器与ss段寄存段寄存器联合使用以确定堆栈段中的存储单元地址。器联合使用以确定堆栈段中的存储

19、单元地址。si、di常用于指令的常用于指令的间接寻址间接寻址或或变址寻址变址寻址。 si在串操作时用作指示源串地址,在串操作时用作指示源串地址,di在串操作时在串操作时用作指示目的串地址。用作指示目的串地址。sp、bp、si、di既可既可指示地址指示地址,也可以用作,也可以用作数数据寄存器据寄存器,存放操作数及中间结果,存放操作数及中间结果25l3. 16位算术逻辑单元(位算术逻辑单元(alu) 完成完成8位或者位或者16位二进制算术和逻辑运算位二进制算术和逻辑运算l4. 数据暂存寄存器数据暂存寄存器 协助协助alu完成运算,暂存参加运算的数据。完成运算,暂存参加运算的数据。l 5. eu控制

20、电路控制电路 从总线接口的指令队列取出指令操作码,通过从总线接口的指令队列取出指令操作码,通过译码电路分析,发出相应的控制命令,控制译码电路分析,发出相应的控制命令,控制alu数据流向。数据流向。26l 6. 16位状态标志寄存器位状态标志寄存器15 14 13 1211109876543210ofdfiftf sf zfafpfcf溢溢出出标标志志进进借借位位标标志志奇奇偶偶标标志志半半进进借借位位标标志志零零标标志志符符号号标标志志单单步步中中断断中中断断允允许许方方向向标标志志1-1-低低8 8位有偶数个位有偶数个1 10-0-低低8 8位有奇数个位有奇数个1 11-1-低低4 4位向高

21、位向高4 4位有进、借位位有进、借位0-0-低低4 4位向高位向高4 4位无进、借位位无进、借位1-结果为结果为00-结果不为结果不为01-有进、借位有进、借位0-无进、借位无进、借位27标志标志用于反映指令用于反映指令执行结果执行结果或或控制指令执行控制指令执行形式形式,8086处理器的各种标志形成了一个处理器的各种标志形成了一个16位的位的标志寄存器标志寄存器flags6个个状态标志状态标志(用来记录程序运行结果的状态信(用来记录程序运行结果的状态信息,许多指令的执行都将相应设置)息,许多指令的执行都将相应设置) cf zf sf zf pf of 3个个控制标志控制标志(可由程序根据需要

22、用指令设置,可由程序根据需要用指令设置,用于控制处理器执行指令的方式用于控制处理器执行指令的方式) if、df、tf 剩下剩下7位保留位保留28l(1) 状态标志状态标志进位标志进位标志cf(carry flag)当运算结果的最高有效位有进位(加法)或当运算结果的最高有效位有进位(加法)或借位(减法)时,进位标志置借位(减法)时,进位标志置1,即,即cf = 1;否则否则cf = 0。 例:例:49h + 6dhb6h, 没有进位:没有进位:cf = 0 bbh + 6ah(1)25h,有进位:,有进位:cf = 1零标志零标志zf(zero flag)若运算结果为若运算结果为0,则,则zf

23、= 1;否则;否则zf = 0例:例:49h + 6dhb6h,结果不是零:,结果不是零:zf = 0 75h + 8bh(1)00h,结果是零:,结果是零:zf = 129l符号标志符号标志sf(sign flag )运算结果最高位为运算结果最高位为1,则,则sf = 1;否则;否则sf = 0 。有符号数据用最高有效位表示数据的符号,有符号数据用最高有效位表示数据的符号,所以,最高有效位就是符号标志的状态所以,最高有效位就是符号标志的状态 例:例: 49h + 6dhb6h,最高位为,最高位为1:sf = 1 75h + 8bh(1)00h,最高位为,最高位为0:sf = 0l溢出标志溢出

24、标志of(overflow flag)若算术运算结果有溢出,则若算术运算结果有溢出,则of1;否则否则 of0 例:例: 49h + 6dh b6h,产生溢出:,产生溢出:of = 1 05h + 8bh 90h,没有溢出:,没有溢出:of = 030处理器内部以补码表示有符号数:处理器内部以补码表示有符号数: 8位表达的整数范围是:位表达的整数范围是:127128 16位表达的范围是:位表达的范围是:3276732768。 如运算结果超出这个范围,就产生了溢出。有溢如运算结果超出这个范围,就产生了溢出。有溢出,说明有符号数的运算结果不正确出,说明有符号数的运算结果不正确例:例: 49h6dh

25、b6h,就是,就是73109182, 补码补码b6h表达真值是表达真值是-74,显然运算结果不正确;,显然运算结果不正确; 计算结果超出计算结果超出128127范围,产生溢出,故范围,产生溢出,故 of1。31溢出和进位溢出和进位进位标志表示无符号数运算结果是否超出范围,运进位标志表示无符号数运算结果是否超出范围,运算结果仍然正确;算结果仍然正确;溢出标志表示有符号数运算结果是否超出范围,运溢出标志表示有符号数运算结果是否超出范围,运算结果已经不正确。算结果已经不正确。例例1:49h + 6dhb6h无符号数运算:无符号数运算: 73109182范围内,无进位范围内,无进位有符号数运算:有符号

26、数运算: 73109182范围外,有溢出范围外,有溢出例例2:bbh + 6ah(1)25h无符号数运算:无符号数运算: 187106293范围外,有进位范围外,有进位有符号数运算:有符号数运算: 6910637范围内,无溢出范围内,无溢出32l奇偶标志奇偶标志pf(parity flag)当运算结果最低字节中当运算结果最低字节中“1”的个数为零或偶的个数为零或偶数时,数时,pf = 1;否则;否则pf = 0pf标志仅反映最低标志仅反映最低8位中位中“1”的个数是的个数是偶或奇,即使是进行偶或奇,即使是进行16位字操作位字操作 例:例: 3ah + 7chb6h10110110b 结果中有结

27、果中有5个个1,是奇数:,是奇数:pf = 033l 辅助进位标志辅助进位标志af( auxiliary carry flag)运算时运算时d3位(低半字节)有进位或借位时,位(低半字节)有进位或借位时,af = 1;否则;否则af = 0。这个标志主要由处理器内部使用,用于十进这个标志主要由处理器内部使用,用于十进制算术运算调整指令中,用户一般不必关心制算术运算调整指令中,用户一般不必关心 例:例: 49h + 6dhb6h,d3有进位:有进位:af = 134状态标志寄存器举例:状态标志寄存器举例: 0101 0100 0011 1001 + 0100 0101 0110 1010 100

28、1 1001 1010 0011 运算后运算后 cf=0 pf=1 of=1 of=cs cp=1 af=1 zf=0 sf=135l(2) 控制标志控制标志方向标志方向标志df(direction flag) 用于串操作指令中,控制地址的变化方向:用于串操作指令中,控制地址的变化方向:设置设置df0,存储器地址自动增加,存储器地址自动增加,串操作,串操作指令以递增顺序处理数据串指令以递增顺序处理数据串;设置设置df1,存储器地址自动减少,存储器地址自动减少,串操作串操作指令以递减顺序处理数据串指令以递减顺序处理数据串。 例:例: cld指令复位方向标志:指令复位方向标志:df0 std指令置

29、位方向标志:指令置位方向标志:df1 36中断允许标志中断允许标志if(interrupt-enable flag)用于控制外部可屏蔽中断是否可以被处理器响应:用于控制外部可屏蔽中断是否可以被处理器响应: 设置设置if1,cpu允许接收外部可屏蔽中断请允许接收外部可屏蔽中断请求,即开中断;求,即开中断; 设置设置if0,则禁止中断,即关中断。,则禁止中断,即关中断。 例:例: cli指令复位中断标志:指令复位中断标志:if0 sti指令置位中断标志:指令置位中断标志:if137跟踪标志跟踪标志tf(trap flag,陷阱标志),陷阱标志) 用于控制处理器进入单步操作方式:用于控制处理器进入单

30、步操作方式:设置设置tf0,处理器正常工作;,处理器正常工作;设置设置tf1,处理器单步执行指令,处理器单步执行指令。 例:单步执行指令例:单步执行指令处理器在处理器在每条指令执行每条指令执行结束结束时,便产生一个编号为时,便产生一个编号为1的内部中断,的内部中断,这种内这种内部中断称为部中断称为单步中断。单步中断。8086含含14个个16位寄存器,按功能可分为三类位寄存器,按功能可分为三类 8个通用寄存器个通用寄存器4个段寄存器个段寄存器 cs, ds, es, ss2个控制寄存器个控制寄存器 ip, flags38数据寄存器(数据寄存器(ax,bx,cx,dx)地址指针寄存器(地址指针寄存

31、器(sp,bp)变址寄存器(变址寄存器(si,di)39l指令队列中出现两个字节为空时自动按指令队列中出现两个字节为空时自动按cs值和值和ip值值组成组成20位实际物理地址到存储器中取指令,一次取位实际物理地址到存储器中取指令,一次取两个字节指令存放到指令队列中。两个字节指令存放到指令队列中。leu从从biu指令队列中读取指令。指令队列中读取指令。l由由eu控制电路对指令进行译码分析,指出操作性质控制电路对指令进行译码分析,指出操作性质及操作对象。及操作对象。leu执行指令,如果执行指令时必需访问存储器或者执行指令,如果执行指令时必需访问存储器或者i/o端口,则在端口,则在eu中计算出操作数的

32、中计算出操作数的16位地址偏移位地址偏移量送给量送给biu,由,由biu的地址加法器形成的地址加法器形成20位物理地位物理地址。址。2.1.4 8086/8088微处理器程序执行过程微处理器程序执行过程40lbiu根据根据eu请求,将操作数的请求,将操作数的20位物理地址传递给位物理地址传递给存储器。存储器。lbiu取来操作数经总线控制逻辑传送到内部取来操作数经总线控制逻辑传送到内部eu数据数据总线。总线。leu将取来的操作数从内部总线送入将取来的操作数从内部总线送入alu,进行指令,进行指令指定的操作。指定的操作。leu运算出的结果,经内部总线送到指定位置,若需运算出的结果,经内部总线送到指

33、定位置,若需要传送给存储器或者要传送给存储器或者i/o端口,则由端口,则由eu请求请求biu产生产生20位实际目标地址,将结果写入存储器或者位实际目标地址,将结果写入存储器或者i/o接口。接口。2.2 8086对存储器和对存储器和i/o的管理的管理2.2.1 8086对主存储器的分段管理对主存储器的分段管理2.2.2 8086对对i/o的管理的管理4142一一. 分段管理技术分段管理技术1. 采用采用“分段管理分段管理”的原因的原因lintel 8086为标准的为标准的16位微处理器,位微处理器,20根地址根地址总线管理总线管理1mb(220)的存储空间。的存储空间。l8086 cpu 中所使

34、用的寄存器均是中所使用的寄存器均是16位的,内位的,内部部alu也只能进行也只能进行16位运算,其寻址范围局位运算,其寻址范围局限在限在21665536(64k)字节单元。为了实现字节单元。为了实现对对1m字节单元的寻址,字节单元的寻址,80 x86系统采用了存系统采用了存储器分段技术。储器分段技术。2.2.1 8086对主存储器的分段管理对主存储器的分段管理432. 采用采用“分段管理分段管理”的方法的方法l将将1m字节的存储空间分成许多逻辑段,每段字节的存储空间分成许多逻辑段,每段最长最长64k字节单元,可以用字节单元,可以用16位地址码进行寻位地址码进行寻址。址。l每个逻辑段在实际存储空

35、间中的位置是可以浮每个逻辑段在实际存储空间中的位置是可以浮动的,其起始地址可由段寄存器的内容来确定。动的,其起始地址可由段寄存器的内容来确定。l把每段起始位置的把每段起始位置的20位实际物理地址中的高位实际物理地址中的高16位称为段地址位称为段地址(段基址段基址),每段中某个存储单元,每段中某个存储单元距段起始位置的偏移量称为偏移地址。段地址距段起始位置的偏移量称为偏移地址。段地址和偏移地址合称为逻辑地址。和偏移地址合称为逻辑地址。44数据段段基址数据段段基址(ds)(ds)数据段内偏移地址数据段内偏移地址扩展段段基址扩展段段基址(es)(es)堆栈段段基址堆栈段段基址(ss)(ss)代码段段

36、基址代码段段基址(cs)(cs)每段地每段地址空间址空间最大最大64k64k数据段数据段扩展段扩展段堆栈段堆栈段代码段代码段45二二. 8086的物理地址和逻辑地址的物理地址和逻辑地址1. 物理地址物理地址 l8086cpu有有20条地址线条地址线最大可寻址空间为最大可寻址空间为2201mb每一个存储单元都具有一个唯一的每一个存储单元都具有一个唯一的物理地址物理地址,即唯一的即唯一的20位编号,物理地址范围从位编号,物理地址范围从00000hfffffh。l 8086cpu将将1mb空间分成许多空间分成许多逻辑段逻辑段(segment)每个段最大限制为每个段最大限制为64kb段地址的低段地址的

37、低4位为位为0000b。l分段后在用户编程时,采用逻辑地址,其形式为:分段后在用户编程时,采用逻辑地址,其形式为: 段基地址段基地址 : 段内偏移地址段内偏移地址462. 逻辑地址逻辑地址l段基地址段基地址说明逻辑段在主存中的起始位置。说明逻辑段在主存中的起始位置。 8086规定段基地址须是模规定段基地址须是模16地址:地址:xxxx0h。l省略低省略低4位位0000b,段地址就可以用,段地址就可以用16位数据位数据表示,就能用表示,就能用16位位段寄存器段寄存器表达段地址表达段地址l偏移地址偏移地址说明主存单元距离段起始位置的偏移说明主存单元距离段起始位置的偏移量,每段不超过量,每段不超过6

38、4kb,偏移地址也可用,偏移地址也可用16位位数据表示数据表示473. 物理地址与逻辑地址的转换物理地址与逻辑地址的转换l将逻辑地址中的段地址左移将逻辑地址中的段地址左移4位,加上偏移地位,加上偏移地址就得到址就得到20位物理地址位物理地址l每个存储单元有惟一的物理地址,但它可以由每个存储单元有惟一的物理地址,但它可以由不同的不同的“段基值段基值”和和“偏移量偏移量”转换而来。转换而来。 即同一个物理地址与多个逻辑地址相对应。即同一个物理地址与多个逻辑地址相对应。14600h 100h14700h13800h f00h14700h段地址左移段地址左移4位位加上偏移地址加上偏移地址得到物理地址得

39、到物理地址逻辑地址逻辑地址 1460:100、1380:f00物理地址物理地址 14700h 14700h4800213h00212h00211h00210h0020fh0020eh0020dh0020ch0020bh0020ah00209h00208h00207h00206h00205h00204h00203h00202h00201h00200h段基值段基值(0021h)段基值段基值(0020h)偏移量偏移量(13h)物理地址物理地址偏移量偏移量(03h)逻辑地址逻辑地址49三三. 段超越段超越l在在“段加偏移段加偏移”的寻址机制中,微处理器有一的寻址机制中,微处理器有一套用于定义各种寻址方

40、式中段寄存器和偏移地套用于定义各种寻址方式中段寄存器和偏移地址寄存器的组合规则址寄存器的组合规则段寄段寄存器存器csssdses偏移地址寄存器偏移地址寄存器ipsp或或bpbx、di、si、8位或位或16位数位数串操作指令的串操作指令的di主要用途主要用途指令地址指令地址堆栈地址堆栈地址数据地址数据地址串操作目的地址串操作目的地址50l段寄存器段寄存器(cs、ds、es、ss)与地址指针寄存器与地址指针寄存器(sp、bp、si、di)默认是隐含配对使用,但也默认是隐含配对使用,但也允许段超越允许段超越存储器操作类型 隐含段超越段偏移量取指令cs无ip堆栈ss无sp数据变量dscs,es,ss

41、有效地址源串变量dscs,es,sssi目的串变量es无di基址bp指针sscs,es,ds 有效地址5152四四. 8086存储器的结构存储器的结构l8086的的1mb存储空间分成两个存储体。存储空间分成两个存储体。偶地址存储体和奇地址存储体,各为偶地址存储体和奇地址存储体,各为512k字节。字节。lcpu用用a0来区分两个存储体,并提供一条信号线和来区分两个存储体,并提供一条信号线和a0,来决定是访问偶地址,来决定是访问偶地址(低字节低字节),还是奇地址,还是奇地址(高高地址地址)或是整个字。或是整个字。53 当当a0=0时,选择偶地址存储体。偶地址存储时,选择偶地址存储体。偶地址存储体与

42、数据总线的低体与数据总线的低8位位(d7d0)相连,所以从相连,所以从低低8位数据总线读位数据总线读/写一个字节。写一个字节。 当当bhe=0时,选择访问奇地址存储体,奇地时,选择访问奇地址存储体,奇地址存储体与数据总线高址存储体与数据总线高8位位(d15d8)相连,所相连,所以由高以由高8位数据总线读位数据总线读/写一个字节。写一个字节。 当当a0=0,bhe=0时,访问两个存储体,读时,访问两个存储体,读/写写一个字。一个字。54l8086系统和外部设备之间通过系统和外部设备之间通过i/o芯片接口,芯片接口,每个每个i/o芯片对应一个或几个端口。芯片对应一个或几个端口。l8086对对i/o

43、端口操作,需要专门的端口操作,需要专门的in、out指指令,并且只能通过累加器(令,并且只能通过累加器(ax/al)来完成。)来完成。 存储器和存储器和i/o端口分别独立编址端口分别独立编址 存储器的地址范围是存储器的地址范围是00000 0fffffh i/o端口的地址范围是端口的地址范围是0000 0ffffh2.2.2 8086对对i/o的管理的管理2.3.1 8086引脚信号和功能引脚信号和功能2.3.2 最小模式下的总线连接最小模式下的总线连接2.3.3 最大模式下的总线连接最大模式下的总线连接552.3 8086引脚信号和工作模式引脚信号和工作模式2.3.1 8086引脚信号和功能

44、引脚信号和功能l20根根ab/16根根db分时复用分时复用:先传地址,后传数据先传地址,后传数据l两种工作模式,由两种工作模式,由 引脚决定引脚决定最小模式最小模式:系统中只有一个:系统中只有一个8086/8088处理器;处理器; 为高电平为高电平最大模式最大模式:系统中包括两个或多个处理器:系统中包括两个或多个处理器,一,一个为主处理器个为主处理器8086/8088,另一个为协处理器,另一个为协处理器8087/8089。 为低电平。为低电平。不同模式下,部分引脚定义不同不同模式下,部分引脚定义不同56mn/mxmn/mxmn/mx57几个术语:几个术语:l时钟周期(时钟周期(t状态):状态)

45、:微处理器处理动作的最小微处理器处理动作的最小时间单位,也是微处理器的基本时间计量单位。时间单位,也是微处理器的基本时间计量单位。l指令周期:指令周期:执行一条指令所需要的时间。执行一条指令所需要的时间。l总线周期(机器周期):总线周期(机器周期):微处理器通过总线与存微处理器通过总线与存储器或储器或i/o接口进行一次数据传输所需的时间。接口进行一次数据传输所需的时间。一个最基本的总线周期由一个最基本的总线周期由4个时钟周期(个时钟周期(t状态)状态)组成。组成。t1t2t3twt4总线周期总线周期58一一.8086.8086引脚图引脚图 40pin 双列直插双列直插 (dip)封装封装 59

46、vcc gndad0ad15bhe/s7ale(qs0)inta(qs1)intrnmia16/s3a19/s6(s2)m/iord(lock)wr(s0)den(s1)dt/r(rq0)hold(rq1)hldareadyresetmn/mxclktest8086系统控制总线控制 cpu控制总线信号中断控制二二.最小模式下引脚信号和功能最小模式下引脚信号和功能1.ad0 ad15(216,39): 地址数据复用总线地址数据复用总线 双向,三态,高电平有效。分时传送双向,三态,高电平有效。分时传送16位数位数据和地址的低据和地址的低16位。由位。由ale锁存地址信息。锁存地址信息。2.a16/

47、s3 a19/s6(3538): 地址状态复用引脚地址状态复用引脚 输出,三态,高电平有效。分时输出地址的输出,三态,高电平有效。分时输出地址的高高4位或位或cpu当前状态。地址信息由当前状态。地址信息由ale锁存。锁存。 总线周期的总线周期的t2t4状态,用作输出状态,用作输出状态信息状态信息。60ls6 为为0时,时,8086/8088当前与总线当前与总线相连;相连;ls5 中断允许的当前中断允许的当前设置。设置。 为为1时,时,8086/8088允允许可屏蔽的中断请求;许可屏蔽的中断请求;ls3、 s4 共同指出当共同指出当前前8086/8088使用的段使用的段寄存器寄存器s40011s

48、30101含义当前正使用es当前正使用ss当前正使用cs,或未使用任何段寄存器 当前正使用ds613.bhe/s7(34): 高高8位数据总线允许位数据总线允许/状态复用引脚状态复用引脚 输出,三态,低电平有效。输出,三态,低电平有效。bhe为低电平表示为低电平表示高高8位数据线位数据线d15d8上数据有效,上数据有效,bhe由由ale锁存。锁存。 bhe和和a0可用于分别选中奇偶地址,并控制可用于分别选中奇偶地址,并控制 读读/写一个字或者字节写一个字或者字节。4.ale(25): 地址锁存允许信号地址锁存允许信号 输出、高电平有效。输出、高电平有效。 表示总线上的信息是地址信息,总线周期的

49、表示总线上的信息是地址信息,总线周期的t1状态输出有效电平状态输出有效电平 。62lbhe和和a0可用于分别选中奇偶地址可用于分别选中奇偶地址;bhe01001a000110操操 作作从偶地址开始读从偶地址开始读/写一个字写一个字从偶地址开始读从偶地址开始读/写一个字节写一个字节从奇地址开始读从奇地址开始读/写一个字节写一个字节从奇地址开始读从奇地址开始读/写一个字(第写一个字(第一个总线周期,将低一个总线周期,将低8位数字送位数字送到到ad15ad8 ,在第二个总线,在第二个总线周期,将低周期,将低8位数字送到位数字送到ad7ad0)所用数据引脚所用数据引脚ad15ad0ad7ad0ad15

50、ad8635.m/io(28): 存储器存储器/输入输出口控制信号输入输出口控制信号 输出,三态。高电平表示当前的信息是存储器输出,三态。高电平表示当前的信息是存储器地址信息;低电平表示当前的信息是地址信息;低电平表示当前的信息是i/o口地址口地址信息。一般在前一个总线周期的信息。一般在前一个总线周期的t4 状态输出有状态输出有效电平,当前总线周期的效电平,当前总线周期的t4 状态为止。状态为止。6.rd(32): 读信号读信号输出,三态,低电平有效。表示输出,三态,低电平有效。表示cpu正在从存正在从存储器或储器或i/o口读入信息。总线周期的口读入信息。总线周期的t2 、 t3 、 tw状态

51、输出有效电平状态输出有效电平 。7.wr(29): 写信号写信号输出,三态,低电平有效。表示输出,三态,低电平有效。表示cpu正向存储正向存储器或器或i/o口输出数据。总线周期的口输出数据。总线周期的t2 、 t3 、 tw状态输出有效电平状态输出有效电平 。648.dt/r(27): 数据收发信号数据收发信号 输出,三态,高电平表示输出,三态,高电平表示cpu正在发送数据;正在发送数据;低电平表示低电平表示cpu接收数据接收数据9.den(26): 数据允许信号数据允许信号 输出,三态,低电平有效。表示输出,三态,低电平有效。表示cpu正在进行正在进行数据收发操作数据收发操作 t2 状态开始

52、有效,一直保持到状态开始有效,一直保持到t4 状态;状态;6510.intr(18): 可屏蔽中断请求信号可屏蔽中断请求信号 输入,高电平有效。外部向输入,高电平有效。外部向cpu提出中断申请。提出中断申请。 cpu在每个指令周期的最后一个时钟周期采样该在每个指令周期的最后一个时钟周期采样该信号,如信号,如cpu中的中断允许为中的中断允许为1,并且由收到该信,并且由收到该信号,号,cpu在当前指令结束后,响应中断请求。在当前指令结束后,响应中断请求。11.inta(24): 中断响应信号中断响应信号输出,低电平有效。外设的中断申请得到响应。输出,低电平有效。外设的中断申请得到响应。连续周期的两

53、个负脉冲,第一个通知外设的接口,连续周期的两个负脉冲,第一个通知外设的接口,已允许中断;外设接口收到第二个负脉冲后,放已允许中断;外设接口收到第二个负脉冲后,放中断类型码于数据总线上。中断类型码于数据总线上。6612.nmi(17): 非屏蔽中断申请信号非屏蔽中断申请信号输入,上升沿有效。表示外部有非屏蔽中断申输入,上升沿有效。表示外部有非屏蔽中断申请。非屏蔽中断不受软件控制,请。非屏蔽中断不受软件控制,cpu必须响应。必须响应。13.hold(31): 总线保持请求信号总线保持请求信号输入,高电平有效。表示其他模块(如输入,高电平有效。表示其他模块(如dmac)申请占用总线申请占用总线14.

54、hlda(30): 总线保持响应信号总线保持响应信号输出,高电平有效。表示输出,高电平有效。表示cpu已让出总线。已让出总线。6715.ready(22):准备好信号:准备好信号 输入,高电平有效。高电平表示存储器或输入,高电平有效。高电平表示存储器或i/o口口已准备好接收数据,外部使已准备好接收数据,外部使ready为低电平为低电平cpu要插入等待周期。要插入等待周期。 cpu在每个在每个t3 状态开始采样该信号,如为低电状态开始采样该信号,如为低电平则插入一个平则插入一个tw 状态,然后继续采样,直至其变状态,然后继续采样,直至其变为高电平。为高电平。16.test(23): 测试信号测试

55、信号 输入,低电平有效。有效时输入,低电平有效。有效时cpu退出退出wait指指令(用来使处理器和外部硬件同步)。令(用来使处理器和外部硬件同步)。6817.reset(21): 复位信号复位信号输入,高电平有效,至少保持输入,高电平有效,至少保持4个时钟周期的高电个时钟周期的高电平。复位时平。复位时cpu停止现行操作,并开始进行初停止现行操作,并开始进行初始化:始化: 标志寄存器标志寄存器flag,ip,ds,ss,es及指令队列均清零;及指令队列均清零; cs设置为设置为ffffh,复位结束时,复位结束时cpu从从ffff0h开开始执行程序始执行程序18.clk(19): 时钟信号时钟信号

56、8086 5mhz t=200ns;单相,占空比为;单相,占空比为1/3。19.vcc,gnd(1,20,40): 电源及地电源及地单单+5v,满足,满足ttl规范规范697012345678910111213141516171819204039383736353433323130292827262524232221 gnd a14 a13 a12 a11 a10 a9 a8 ad7 ad6 ad5 ad4 ad3 ad2 ad1 ad0 nmi intr clk gndvccad15ad16 / s3ad17 / s4ad18 / s5ad19 / s6ss0* (high)mn / mx*

57、rd*hold (rq)*/ gt0*)hlda (rq1* /gt1*)wr* (lock*)m* / io ( s2* )dt / r* ( s1* )den ( s0 )aleintatest*readyreset80888086与与8088在引脚上的区别在引脚上的区别 8086微处理器微处理器 8088微处理器微处理器 16位位ab复用复用 8位位ab复用复用 bhe高八位数据允许高八位数据允许 ss0 系统状态系统状态0输出输出 与与m/io和和dt/r指示最小指示最小 模式下的模式下的8种工作状态种工作状态 m/io引脚选择引脚选择 m/io引脚选择引脚选择 存储器存储器/io口口

58、 存储器存储器/io口口71三三. 最大模式下引脚信号和功能最大模式下引脚信号和功能72 最 大 模 式 下最 大 模 式 下8086有有8个控制信个控制信号(号(2431)被重)被重新定义,此时系新定义,此时系统中可接入协处统中可接入协处理器理器8087或或8089。1.s2,s1,s0:总线周期状总线周期状态信号态信号(2628) 输出,三个信号组合输出,三个信号组合产生系统控制信号,产生系统控制信号,指出当前总线周期所指出当前总线周期所进行的数据传输过程进行的数据传输过程的类型。由总线控制的类型。由总线控制器器8288译码。译码。73s2,s1,s0在前一个总线周在前一个总线周期的期的t

59、4 状态或当前周期状态或当前周期的的t1 、 t2状态至少一个状态至少一个信号为低电平,对应一信号为低电平,对应一种操作过程种操作过程有源状有源状态。态。74s2, s1, s0在在t3 和和tw 状态且状态且ready为高电平时,为高电平时,将都变成高电平,意味着当前的总线操作即将将都变成高电平,意味着当前的总线操作即将结束,新的总线周期还未开始结束,新的总线周期还未开始无源状态。无源状态。其中任意一个或几个信号的变化将意味新的总线其中任意一个或几个信号的变化将意味新的总线周期的开始。周期的开始。2.lock:总线封锁信号:总线封锁信号(29) 三态,输出,低电平有效。有效时禁止其他部三态,

60、输出,低电平有效。有效时禁止其他部件占用总线。件占用总线。 指令前缀指令前缀lock产生,产生,lock前缀后面的一条前缀后面的一条指令执行完,撤销该信号;指令执行完,撤销该信号; 两个中断响应脉冲之间,自动变为有效,以两个中断响应脉冲之间,自动变为有效,以防其他总线主部件在中断响应过程中占有总线防其他总线主部件在中断响应过程中占有总线而使一个中断响应过程被间断。而使一个中断响应过程被间断。3.rq0/gt0,rq1/gt1:总线请求总线请求/允许信号允许信号(30,31) 双向,低电平有效。有两个总线请求与总线响双向,低电平有效。有两个总线请求与总线响应信号,支持多处理器工作。应信号,支持多

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论