1、80868086处理器处理器8080386386处理器处理器8048680486处理器处理器PentiumPentium处理器处理器程序设计模型程序设计模型本章要点本章要点第第2 2章章 微处理器及系统系统主要组成系统主要组成n80868088由两个独立的处理部件组成:由两个独立的处理部件组成:执行部件执行部件EU(Execution Unit)总线接口部件总线接口部件BIU(Bus Interface Unit)n设置了指令预取队列,支持以流水方式执行设置了指令预取队列,支持以流水方式执行指令指令 2.1 80862.1 8086处理器处理器n处理器字长处理器字长:处理处理8位或位或16位的
2、数据位的数据,时钟频率为时钟频率为48MHz n直接寻址的存储空间为直接寻址的存储空间为1M字节(字节(220)n中断源为中断源为256级,包括内部软件和外部硬件中断级,包括内部软件和外部硬件中断 n支持最小方式(单支持最小方式(单CPU)和最大方式(多和最大方式(多CPU)工工作作)n独立的独立的I/O端口地址寻址方式端口地址寻址方式:I/O端口有端口有64K个个 2.1.1 主要性能指标主要性能指标2.1.2 8086 8086内部结构内部结构 取指令取指令 传送数据传送数据 形成物理地址形成物理地址 指令译码指令译码 执行指令执行指令 向向BIUBIU传送偏移地址信息传送偏移地址信息 管
3、理通用寄存器和标志寄存器管理通用寄存器和标志寄存器BIU与EU的主要功能BIUBIU和和EUEU并行操作示意图并行操作示意图BIU BIU 取指令取指令1 1 取指令取指令2 2 取指令取指令3 3 取指令取指令4 4取数据取数据 取指令取指令5 5EU EU 等待等待等待等待执行执行1 1执行执行2 2执行执行3 3执行执行4 4n 通用寄存器通用寄存器 既可用作既可用作16位也可用作位也可用作8位。位。AXAX作为累加器作为累加器,在字在字(AL,AHAL,AH字字节节)乘乘,除法运算中存放结果除法运算中存放结果,I/OI/O指指令中传送数据令中传送数据.BXBX作为基址寄存器作为基址寄存
4、器,CXCX作为计数寄存器作为计数寄存器(如循环、如循环、串操作串操作)DXDX作为端口地址寄存器作为端口地址寄存器 2.8086/80882.8086/8088内部寄存器内部寄存器8 8位位寄存器名寄存器名1616位位寄存器名寄存器名累加器累加器AXAX基址基址BXBX计数器计数器CXCX端口地址端口地址DXDX栈指针栈指针基址指针基址指针目标变址目标变址源变址源变址指令指针指令指针标志标志代码段代码段数据段数据段堆栈段堆栈段附加段附加段SISIDIDIBPBPSPSPDH DL DH DL CH CLCH CLBH BLBH BLAH ALAH ALFLAGSFLAGSIPIPFSFSGS
5、GSESESSSSSDSDSCSCSn地址指针寄存器地址指针寄存器SP,BPSP,BP SP:SP:堆栈指针寄存器堆栈指针寄存器 BP:BP:基址指针寄存器基址指针寄存器n变址寄存器变址寄存器SISI,DI,DI SI:SI:源变址寄存器源变址寄存器 DI:DI:目的变址寄存器目的变址寄存器8 8位位寄存器名寄存器名1616位位寄存器名寄存器名累加器累加器AXAX基址基址BXBX计数器计数器CXCX数据数据DXDX栈指针栈指针基址指针基址指针目标变址目标变址源变址源变址指令指针指令指针标志标志代码段代码段数据段数据段堆栈段堆栈段附加段附加段SISIDIDIBPBPSPSPDH DL DH DL
6、 CH CLCH CLBH BLBH BLAH ALAH ALFLAGSFLAGSIPIPFSFSGSGSESESSSSSDSDSCSCSn段寄存器段寄存器CS,DS,SS,ES CS:CS:代码段寄存器代码段寄存器 DS:DS:数据段寄存器数据段寄存器 SS:SS:堆栈段寄存器堆栈段寄存器 ES:ES:附加段寄存器附加段寄存器n指令指针寄存器指令指针寄存器IP 存放预取指令的偏移地址存放预取指令的偏移地址.8 8位位寄存器名寄存器名1616位位寄存器名寄存器名累加器累加器AXAX基址基址BXBX计数器计数器CXCX数据数据DXDX栈指针栈指针基址指针基址指针目标变址目标变址源变址源变址指令指
7、针指令指针标志标志代码段代码段数据段数据段堆栈段堆栈段附加段附加段SISIDIDIBPBPSPSPDH DL DH DL CH CLCH CLBH BLBH BLAH ALAH ALFLAGSFLAGSIPIPFSFSGSGSESESSSSSDSDSCSCSD15D0 OF DF IF TF SF ZF AF PF CF进进借借位位标标志志奇奇偶偶标标志志辅辅助助进进借借位位标标志志全全零零标标志志符符号号标标志志单单步步中中断断中中断断允允许许方方向向标标志志溢溢出出标标志志1-有进、借位有进、借位0-无进、借位无进、借位1-低低8位有偶数个位有偶数个10-低低8位有奇数个位有奇数个11-低
8、低4位向高位向高4位有进、借位位有进、借位0-低低4位向高位向高4位无进、借位位无进、借位1-结果为结果为00-结果不为结果不为0n标志寄存器标志寄存器FLAGSFLAGS 记录算术和逻辑运算的一些状态标志,记录算术和逻辑运算的一些状态标志,有有1616位,其中有位,其中有7 7位未用。位未用。控制标志控制标志(3(3个个)DFDF(direction(direction flag):flag):方向标志方向标志.IFIF(interrupt(interrupt enable flag):enable flag):中断允许标志中断允许标志TF(TF(traptrap flag):flag):跟
9、踪跟踪(陷阱陷阱)标志标志状态标志状态标志(6(6个个)CF CF 进进/借位标志(借位标志(Carry FlagCarry Flag):):有进有进/借位为借位为1 1,无进借位为,无进借位为0 0。另循环指。另循环指令也使令也使CF=1CF=1。AFAF 辅助进位标志(辅助进位标志(Auxiliary Carry FlagAuxiliary Carry Flag):):低低4 4位向高位有进位向高位有进/借位(即借位(即第第3 3位向第位向第4 4位进位)为位进位)为1 1,否则否则AF=0AF=0。PFPF 奇偶标志(奇偶标志(Parity FlagParity Flag):):运算结果
10、若低运算结果若低8 8位所含位所含1 1的个数为偶数,则的个数为偶数,则PF=1PF=1,否则否则PF=0PF=0。ZFZF 全零标志(全零标志(Zero FlagZero Flag):):当运算结果使有效位数的各位全为零时当运算结果使有效位数的各位全为零时ZF=1ZF=1,否则否则ZF=0ZF=0。SFSF 符号标志(符号标志(Sign Sign FalgFalg):):当运算结果为负时当运算结果为负时SF=1SF=1,否则否则SF=0SF=0。SFSF的值就的值就是有符号数的最高位是有符号数的最高位(符号位符号位)。OF OF 溢出标志(溢出标志(Overflow FlagOverflow
11、 Flag):):当运算结果超出了机器所能表示的范围时,当运算结果超出了机器所能表示的范围时,则则OF=1OF=1,表示溢出,否则表示溢出,否则OF=0OF=0。溢出判断方法:溢出判断方法:OP=Cn-1异或 Cn-22.1.3 存储器组织存储器组织 在在8088/80868088/8086系统中,存储器是按字节编址的,系统中,存储器是按字节编址的,其寻址空间为其寻址空间为1MB1MB,每个字节地址为,每个字节地址为2020位,这位,这2020位的位的地址称为地址称为物理地址物理地址。1.1.存储器的分段存储器的分段为什么要分段?为什么要分段?物理地址:物理地址:20位位8086寄存器:寄存器
12、:16位,能处理的地址目标只能是位,能处理的地址目标只能是16位位 (216=64KB)因此,把因此,把1MB存储空间分成若干个逻辑段,每个存储空间分成若干个逻辑段,每个逻辑段的容量逻辑段的容量=64KB。段与段之间可以段与段之间可以相互独立相互独立或或首尾相连首尾相连或或相互重叠相互重叠。对于任何一个物理地址,可以唯一的包含在一个逻对于任何一个物理地址,可以唯一的包含在一个逻辑段中,也可以包含在多个相互重叠的逻辑段中。辑段中,也可以包含在多个相互重叠的逻辑段中。一种特殊的分段情况。一种特殊的分段情况。规定规定:段的首地址低:段的首地址低4位为零,段首地址的高位为零,段首地址的高16位称为位称
13、为“段基址段基址”,存放在段寄存器,存放在段寄存器DS、CS、ES、SS中,段内的偏移地址存放在中,段内的偏移地址存放在IP中。中。物理地址(绝对地址)物理地址(绝对地址):用:用20位二进制数表示位二进制数表示 逻辑地址逻辑地址:程序员使用的地址,由段基址和偏移地程序员使用的地址,由段基址和偏移地址组成,它们都是用址组成,它们都是用16位二进制数表示。位二进制数表示。每个存储单元对应一个每个存储单元对应一个20位的物理地址,它由位的物理地址,它由逻辑地址变换而来。逻辑地址变换而来。CPU自动将逻辑地址转换成相自动将逻辑地址转换成相应的物理地址。应的物理地址。2.逻辑地址和物理地址逻辑地址和物
14、理地址3 3物理地址的形成物理地址的形成 0 0 0 019 18 .15 14 .2 1 0偏移地址地址加法器19 18 .2 1 0物理地址段地址15 14 .2 1 0 6 5 4 3 2 1 0.例例:CS=FA00HIP=0300H物理地址物理地址=FA000H+0300H =FA300H物理地址物理地址=段基址段基址*16+16+偏移地址偏移地址通过通过BIU的地址加法器实现。的地址加法器实现。段基址、段首址、段的起始地址之间的区别与关系?段基址、段首址、段的起始地址之间的区别与关系?段首址段首址=段基址段基址*10H10H 注意:注意:A段既可作为代段既可作为代码段,也可作为数据
15、码段,也可作为数据段,还可作为堆栈段段,还可作为堆栈段段,要把段基址赋值段,要把段基址赋值给相应的段寄存器。给相应的段寄存器。用段来组织逻辑空间用段来组织逻辑空间n每段最长可达每段最长可达64KBn各段起始地址的低各段起始地址的低4位为位为0n各段之间可以分开、部分或完全重叠、可首尾相接各段之间可以分开、部分或完全重叠、可首尾相接n根据各段的用途将其定义为根据各段的用途将其定义为CS、DS、ES、SS段,段,并用偏移地址表示被访问单元并用偏移地址表示被访问单元 CS段中用段中用IP表示偏移量表示偏移量 SS段中用段中用SP、BP DS/ES段中用段中用BX、SI、DI、数值、数值 CS 000
16、0 IP DS或或ES 0000 SI、DI或或BX SS 0000 SP或或BP代码段代码段数据段数据段堆栈段堆栈段存储器存储器段寄存器和偏移地址寄存器组合关系段寄存器和偏移地址寄存器组合关系例题例题n哪两种地址合成物理地址哪两种地址合成物理地址?n下列合成物理地址是否正确下列合成物理地址是否正确?是发生在取指令或执是发生在取指令或执行指令行指令?1.CS:SP 2.DS:DI 3.DS:IP 4.SS:SPFA000H0300Hn已知已知CS=FA00H,IP=0300H,求当前指,求当前指令的实际地址。令的实际地址。指令的物理地址指令的物理地址=FA000H+0300H=FA300H代码
17、段数据段堆栈段附加段(?)计算下列地址计算下列地址 1.1000H:1234H=?2.A200H:12CFH=?3.A000H:?=A0123 4.?:CD21H=32D21H 2 2.1.4 8086/8088.1.4 8086/8088工作模式工作模式n最小模式:最小模式:指在指在系统中只有一个微处理器系统中只有一个微处理器,系统中的所有总,系统中的所有总线控制信号都直接由线控制信号都直接由8086/80888086/8088产生,因此整个系统中的控制产生,因此整个系统中的控制线路最简单,对应这种工作模式称为最小模式。线路最简单,对应这种工作模式称为最小模式。n最大模式:最大模式:是相对于
18、最小模式而言的,指系统中是相对于最小模式而言的,指系统中含有两个或含有两个或两个以上微处理器两个以上微处理器,其中一个就是,其中一个就是8086/80888086/8088为主处理器,其为主处理器,其它都是协处理器。它都是协处理器。在在8086/80888086/8088系统中与其配合的协处理器有数值运算协处系统中与其配合的协处理器有数值运算协处理器理器80878087和输入输出协处理器和输入输出协处理器80898089。处理器的最小定时单位,它由主频决定。处理器的最小定时单位,它由主频决定。n模式由硬件决定模式由硬件决定:CPUCPU引脚引脚MN/MX_MN/MX_为为“1”“1”高电平高电
19、平,在最小模式在最小模式;为为“0”“0”电平电平,在最大模式在最大模式.8284CLKRESETREADYMN/MXALEDENRDT/RIO/MWRRDHOLDHLDAIO/MINTRINTA地址锁存器数据收发器控制总线数据总线地址总线+5VA.A.最小模式下的典型配置最小模式下的典型配置8284CLKRESETREADYMN/MXA19A8S0地址锁存器数据收发器控制总线数据总线地址总线8288总线控制器S1S2AD7AD0B.B.最大模式最大模式下的典型配置下的典型配置5.8086/80885.8086/8088引脚信号引脚信号12345678910VccAD15A16/S3A17/S
20、4A18/S5GNDAD14AD13AD12AD114039383736A19/S6BHE/S7MN/MXRDHOLD (RQ/GT0)AD10AD9AD8AD7AD6HLDA (RQ/GT1)WR (LOCK)M/IO (S2)DT/R (S1)DEN (S0)AD5AD4AD3AD2AD1ALE (QS0)INTA (QS1)TESTREADYRESETAD0NMIINTRCLKGND3534333231302928272611121314152524232221161718192012345678910VccAD15A16/S3A17/S4A18/S5GNDA14A13A12A11403
21、9383736A19/S6SS0MN/MXRDHOLD (RQ/GT0)A10A9A8AD7AD6HLDA (RQ/GT1)WR (LOCK)IO/M (S2)DT/R (S1)DEN (S0)AD5AD4AD3AD2AD1ALE (QS0)INTA (QS1)TESTREADYRESETAD0NMIINTRCLKGND353433323130292827261112131415252423222116171819208086808840引脚集成芯片引脚集成芯片引脚引脚含义含义nNMINMI为硬件中断源中不可屏蔽中断输入信号,上升沿为硬件中断源中不可屏蔽中断输入信号,上升沿有效。有效。nINT
22、RINTR为硬件中断源中可屏蔽中断的输入信号,高电为硬件中断源中可屏蔽中断的输入信号,高电平有效。所有外部调设备的中断源均接至中断控制平有效。所有外部调设备的中断源均接至中断控制器,通过中断控制器输出再接入器,通过中断控制器输出再接入INTRINTR引脚。实现中引脚。实现中断管理断管理nAD15-AD0AD15-AD0:地址:地址/数据复用引脚数据复用引脚nA19/S6A16/S3:A19/S6A16/S3:地址地址/状态复用输出线状态复用输出线nBHE/S7BHE/S7:高:高8 8位数据总线允许位数据总线允许/状态复用输出线状态复用输出线nRDRD:读信号输出线读信号输出线nCLKCLK:
23、时钟输入线时钟输入线nRESETRESET:复位信号输入线:复位信号输入线nREADYREADY:准备好准备好信号输入线(由存储器和信号输入线(由存储器和I/O设备发设备发来)来)nMN/MXMN/MXnGNDGND和和VccVccn第第2431引脚的信号含义与工作模式有引脚的信号含义与工作模式有关。关。S S0 0S7S7含义含义nS7未定义nS6始终为低nS5与标志寄存器中的中断允许标志IF一致。nS4、S3表示使用的段寄存器nS2-、S1-、S0-组合确定最大模式下总线操作类型 (见P13)S4S3段 寄 存 器00ES01SS10CS11DS QS1 QS1和和QS0QS0含义含义 Q
24、S1和QS0在最大模式下表示指令队列的使用情况QS1QS0含义00110101无操作从 指 令 队 列 的 第 一 个 字 节 中 取代码队列为空除 第 一 个 字 节 外,还 取 走 了 后续字节中的代码 最小模式最小模式总线操作总线操作 最大模式最大模式总线操作类型总线操作类型S2S1S0通过8288产生的信号具体操作状态有关指令示例000INTA发中断响应信号无001IORC读I/O接口 IN AL,DX010IOWC,AIOWC写I/O接口OUT DX,AL011无暂停NOP100MRDC取指令无101MRDC读内存MOV AX,1234H110MWTC,AMWC写内存MOV DI,C
25、X111无无效状态无 6.6.总线周期的概念总线周期的概念 总线周期总线周期:CPU通过总线与存储器或通过总线与存储器或I/O接口进行一次数据传接口进行一次数据传输所需的时间。输所需的时间。时钟周期时钟周期:微处理器的最小定时单位,它由主频决定。8086/8088一个基本总线周期包括4个时钟周期的时间。习惯称为4个状态,分别记为T1、T2、T3和T4状态。:输出地址信息并锁存。:撤消地址,为传送数据作准备。:如果外部准备好,则数据稳定在总线上。:读写总线上的数据,总线周期结束。指令周期:指令周期:在微机系统中,在微机系统中,CPU是在时钟信号是在时钟信号CLK控制下,按控制下,按节拍有序地执行
26、指令序列。从取指令开始,经过分析指令、节拍有序地执行指令序列。从取指令开始,经过分析指令、对操作数寻址,然后执行指令、保存操作结果,这个过程称对操作数寻址,然后执行指令、保存操作结果,这个过程称为为指令执行周期指令执行周期.一条指令从取出到执行完毕所需要的时间一条指令从取出到执行完毕所需要的时间。8086/80888086/8088总线时序(读)总线时序(读)T1T1T2T2T3T3TwTwT4T4地址输出地址输出(A19-A16)A19-A16)高:读内存高:读内存 低:读低:读I/OI/O状态输出(状态输出(S6S6S3S3)地址输出地址输出(A15-A0)A15-A0)数据输入(数据输入
27、(D15D15D0D0)BHEBHE输出输出S7S7(无意义)无意义)CLKCLKM/IOM/IOA19/S6-A19/S6-A16/S3A16/S3AD15-AD15-AD0AD0BHE/S7BHE/S7ALEALERDRDDT/RDT/RDENDEN80868086最小模式下的读总线周期最小模式下的读总线周期(1)T1状态状态M/IO信号:从存储器读还是从信号:从存储器读还是从I/O设备中读数据;设备中读数据;AD15-AD0、A19/S7-A16/S3:确定:确定20位地址;位地址;/BHE:选择奇地址存储体选择。:选择奇地址存储体选择。ALE:地址锁存信号,以使地址:地址锁存信号,以使
28、地址/数据线分开。数据线分开。T1T1T2T2T3T3TwTwT4T4地址输出地址输出(A19-A16)A19-A16)高:读内存高:读内存 低:读低:读I/OI/O状态输出(状态输出(S6S6S3S3)地址输出地址输出(A15-A0)A15-A0)数据输入(数据输入(D15D15D0D0)BHEBHE输出输出S7S7(无意义)无意义)CLKCLKM/IOM/IOA19/S6-A19/S6-A16/S3A16/S3AD15-AD15-AD0AD0BHE/S7BHE/S7ALEALERDRDDT/RDT/RDENDEN(2)T2状态状态A19/S6-A16/S3:出现:出现S6-S3状态信号。决
29、定段寄存器、状态信号。决定段寄存器、IF状态、状态、8086CPU是否连在总线上。是否连在总线上。AD15-AD0:高阻状态。:高阻状态。/RD:由高电平变为低电平,开始进行读操作。:由高电平变为低电平,开始进行读操作。/DEN:变低电平,启动收发器:变低电平,启动收发器8268,做好接收数据的,做好接收数据的准备。准备。T1T1T2T2T3T3TwTwT4T4地址输出地址输出(A19-A16)A19-A16)高:读内存高:读内存 低:读低:读I/OI/O状态输出(状态输出(S6S6S3S3)地址输出地址输出(A15-A0)A15-A0)数据输入(数据输入(D15D15D0D0)BHEBHE输
30、出输出S7S7(无意义)无意义)CLKCLKM/IOM/IOA19/S6-A19/S6-A16/S3A16/S3AD15-AD15-AD0AD0BHE/S7BHE/S7ALEALERDRDDT/RDT/RDENDEN(3)T3状态状态若存储器或若存储器或I/O端口已做好发送数据准备,则在端口已做好发送数据准备,则在T3状状态期间将数据放到数据总线上,在态期间将数据放到数据总线上,在T3结束时,结束时,CPU从从AD15-AD0上读取数据。上读取数据。T1T1T2T2T3T3TwTwT4T4地址输出地址输出(A19-A16)A19-A16)高:读内存高:读内存 低:读低:读I/OI/O状态输出(
31、状态输出(S6S6S3S3)地址输出地址输出(A15-A0)A15-A0)数据输入(数据输入(D15D15D0D0)BHEBHE输出输出S7S7(无意义)无意义)CLKCLKM/IOM/IOA19/S6-A19/S6-A16/S3A16/S3AD15-AD15-AD0AD0BHE/S7BHE/S7ALEALERDRDDT/RDT/RDENDEN(4)TW状态状态在在T3状态,存储器或外设没有准备好数据,不能在状态,存储器或外设没有准备好数据,不能在T3状态将数据放到总线上,使状态将数据放到总线上,使READY=0,则则CPU在在T3和和T4之间插入一个或几个之间插入一个或几个TW状态,直到数据
32、准备好状态,直到数据准备好READY=1为止。为止。TW状态时总线的动作与状态时总线的动作与T3时相同。时相同。T1T1T2T2T3T3TwTwT4T4地址输出地址输出(A19-A16)A19-A16)高:读内存高:读内存 低:读低:读I/OI/O状态输出(状态输出(S6S6S3S3)地址输出地址输出(A15-A0)A15-A0)数据输入(数据输入(D15D15D0D0)BHEBHE输出输出S7S7(无意义)无意义)CLKCLKM/IOM/IOA19/S6-A19/S6-A16/S3A16/S3AD15-AD15-AD0AD0BHE/S7BHE/S7ALEALERDRDDT/RDT/RDEND
33、EN(5)T4状态状态CPU对数据总线进行采样,读出数据。对数据总线进行采样,读出数据。T1T1T2T2T3T3TwTwT4T4地址输出地址输出(A19-A16)A19-A16)高:读内存高:读内存 低:读低:读I/OI/O状态输出(状态输出(S6S6S3S3)地址输出地址输出(A15-A0)A15-A0)数据输入(数据输入(D15D15D0D0)BHEBHE输出输出S7S7(无意义)无意义)CLKCLKM/IOM/IOA19/S6-A19/S6-A16/S3A16/S3AD15-AD15-AD0AD0BHE/S7BHE/S7ALEALERDRDDT/RDT/RDENDEN 总线时序(写)总线
34、时序(写)8086最小模式下的写总线周期T1T2T3TwT4地 址 输 出(A19-A16)高:读 内 存 低:读 I/O状 态 输 出(S6S3)地 址 输 出(A15-A0)数 据 输 出(D15D0)BHE输 出S7(无 意 义)CLKM/IOA19/S6-A16/S3AD15-AD0BHE/S7ALEWRDT/RDEN(1)T1状态状态M/IO信号:对存储器写还是对信号:对存储器写还是对I/O设备中写数据;设备中写数据;AD15-AD0、A19/S7-A16/S3:确定:确定20位地址;位地址;/BHE:选择奇地址存储体选择。:选择奇地址存储体选择。ALE:地址锁存信号,以使地址:地址
35、锁存信号,以使地址/数据线分开。数据线分开。DT/R:为高电平,指示收发器:为高电平,指示收发器8286发送数据,写操作。发送数据,写操作。(2)T2状态状态A19/S6-A16/S3:出现:出现S6-S3状态信号。决定段寄存器、状态信号。决定段寄存器、IF状态、状态、8086CPU不否连在总线上。不否连在总线上。AD15-AD0:发出:发出16位数据。位数据。/WR:由高电平变为低电平,开始进行写操作。:由高电平变为低电平,开始进行写操作。/DEN:变低电平,启动收发器:变低电平,启动收发器8268,做好发送数据的,做好发送数据的准备。准备。(3)T3状态状态若存储器或若存储器或I/O端口已
36、做好接收数据准备,则在端口已做好接收数据准备,则在T3状状态期间将数据放到数据总线上,在态期间将数据放到数据总线上,在T3结束时,结束时,CPU将将AD15-AD0上数据写入到存储器或上数据写入到存储器或I/O设备中。设备中。(4)TW状态状态在在T3状态,存储器或外设没有准备好接收数据,使状态,存储器或外设没有准备好接收数据,使READY=0,则则CPU在在T3和和T4之间插入一个或几个之间插入一个或几个TW状态,直到设备准备好状态,直到设备准备好READY=1为止。为止。(5)T4状态状态在在T4状态,数据从数据总线上被撤除,各种控制信号状态,数据从数据总线上被撤除,各种控制信号和状态信号
37、进入无效状态,和状态信号进入无效状态,CPU完成了对存储器或完成了对存储器或I/O设备的写操作。设备的写操作。2 2.2.1.2.1 主要特点主要特点8 803860386微处理器微处理器 1 1时钟频率提高时钟频率提高 20 20MHzMHz以上,远远高于以上,远远高于8028680286的时钟频率。的时钟频率。2 2寻址能力增强寻址能力增强 80386 80386提供了提供了3232位地址总线,寻址能力提高到位地址总线,寻址能力提高到40964096MBMB(2 23232=4GB=4GB)。)。3 3增强内存管理增强内存管理 从从8038680386开始,除了分段管理外,还增加了内存分页
38、开始,除了分段管理外,还增加了内存分页(Memory Memory Paging)Paging)的技术。的技术。4 4增加了虚拟增加了虚拟8686工作方式工作方式 除了保持了除了保持了8028680286的的实地址方式实地址方式和和保护方式保护方式外,外,8038680386还增加还增加了一种叫做保护方式下的了一种叫做保护方式下的虚拟虚拟80868086方式方式(简称虚拟(简称虚拟80868086或虚拟或虚拟8686或或V86V86方式)。方式)。2.2.2 80386/804862 80386/80486微处理器微处理器8048680486微处理器微处理器 特点:特点:采用精简采用精简RIS
39、CRISC指令技术指令技术芯片含有芯片含有8 8K K内部内部CACHECACHE芯片含有芯片含有8038780387协处理器协处理器采用猝发式总线采用猝发式总线(Burst Bus)技术技术性能:性能:外部数据、地址总线:外部数据、地址总线:3232位位最大工作频率:最大工作频率:133133M M流水线:流水线:5 5级级逻辑地址空间:逻辑地址空间:6464T T物理地址空间:物理地址空间:4 4G G执行部件执行部件EUEU分段部件分段部件SUSU分页部件分页部件PUPU总线部件总线部件BIUBIU译码部件译码部件IDUIDU预取部件预取部件IPUIPU指令字节指令字节数据(操作和结果)
40、数据(操作和结果)有效地址有效地址线性地址线性地址物理地址物理地址译码指令译码指令指令指令3232位位系统总线系统总线80386的功能模块的功能模块桶形移位器ALU乘/除硬件寄存器组保护检测部件译码和定序控制ROM指令译码器已译码指令队列输入加法器描述符寄存器界限和属性 PLA预取器/界限校验器 16字节预取队列加法器页高速缓冲 存储器控制和属性 PLA线性地址总线32位32位指令预取部件IPU取码取页表 地址驱动器流水总线宽度控制 MUX收发器 请求判优器32位32位物理地址总线HOLD,INTR,NMIERROR,BUSYRESET,HLDABE0BE3M/IO,D/CW/R,LOCKAD
41、S,NABSIC,READYD31D0ALU专用总线32位32位32位有效地址总线状态标志ALU控制指令译码器IDU分段部件SU分页部件PU总线接口部件BIU控制偏移量总线内部控制总线执行部件EUA31A28048680486的内部结构框图的内部结构框图 寄存器组ALU段控制 管理 PLA页控制管理 TLBCACHE管理 8K浮点运算FPU控制部件ROM指令译码指令队列地址驱动数据缓冲数据收发总线控制nALU:定点数运算和逻辑运算部件(80386)nFPU:浮点数运算部件(80387协处理器)nPLA、TLB:面向多用户(虚地址)的存储器段管理和页管理部件nCACHE:高速缓存n其它与8086
42、/8088部分相同 n指令码流:CACHE(或内存)、指令队列、指令译码。n物理地址:段址+偏址、由段管理产生线性地址。n 线性地址由页管理产生物理地址。n数据流:CACHE(或内存)、直接进入运算器。8048680486的内部结构的内部结构 2.2.3 2.2.3 内部寄存器内部寄存器1 1、寄存器特点寄存器特点1.1.通用寄存器和标志寄存器都扩展到通用寄存器和标志寄存器都扩展到3232位,在原位,在原1616位基础上前面加位基础上前面加E E。数据寄存器可进行数据寄存器可进行8 8位、位、1616位位和和3232位操作。位操作。2.2.段寄存器仍为段寄存器仍为1616位,但增加两个数据段寄
43、存器位,但增加两个数据段寄存器FSFS和和GSGS。3.3.增加三个控制寄存器增加三个控制寄存器CR0CR0、CR2CR2和和CR3CR3(无无CR1)。)。4.4.系统地址寄存器与系统地址寄存器与8028680286类似。类似。SISIDIDIBPBPSPSPDH DL DH DL CH CLCH CLBH BLBH BLAH ALAH AL8 8位位寄存器名寄存器名1616位位寄存器名寄存器名3232位位寄存器名寄存器名EAXEAX累加器累加器AXAXFLAGSFLAGSIPIPFSFSGSGSESESSSSSDSDSCSCSEBXEBXECXECXEDXEDXESPESPEDIEDIES
44、IESIEBPEBP基址基址BXBX计数器计数器CXCX数据数据DXDX栈指针栈指针基址指针基址指针目标变址目标变址源变址源变址EIPEIPEFLAGSEFLAGS指令指针指令指针标志标志代码段代码段数据段数据段堆栈段堆栈段附加段附加段2 2、386386寻址方式寻址方式 地址 内存 指令01000 8B MOV AX,BX01001 C3 01002 XX 下一指令01003 XXBX=ABCDH 执行之后:AX=?1)寄存器寻址方式)寄存器寻址方式地址 内存 指令01000 B0 MOV AX,15H01001 15 01002 XX 下一指令01003 XX 执行之后:IP=?AX=?2
45、)立即数寻址方式)立即数寻址方式SISIDIDIBPBPSPSPDH DL DH DL XXXXXXXXBH BLBH BLAH ALAH AL8 8位位寄存器名寄存器名1616位位寄存器名寄存器名3232位位寄存器名寄存器名EAXEAX累加器累加器AXAXFLAGSFLAGSIP IP 00000000FSFSGSGSESESSSSSDS DS 02000200CS CS 01000100EBXEBXECXECXEDXEDXESPESPEDIEDIESIESIEBPEBP基址基址BXBX计数器计数器CXCX数据数据DXDX栈指针栈指针基址指针基址指针目标变址目标变址源变址源变址EIPEIPE
46、FLAGSEFLAGS指令指针指令指针标志标志代码段代码段数据段数据段堆栈段堆栈段附加段附加段 地址 内存 指令010008B MOV CX,1234H01001 0E 01002 34 下一指令01003 1202000 XX02001 XX .03234 ED 源操作数03235 BE执行之后:CX=?3)直接寻址方式)直接寻址方式PA=段地址+直接地址 (CS,DS,SS,ES)SI SI 12341234DIDIBPBPSPSPDH DL DH DL XXXXXXXXBH BLBH BLAH ALAH AL8 8位位寄存器名寄存器名1616位位寄存器名寄存器名3232位位寄存器名寄存器
47、名EAXEAX累加器累加器AXAXFLAGSFLAGSIP IP 00000000FSFSGSGSESESSSSSDS DS 02000200CS CS 01000100EBXEBXECXECXEDXEDXESPESPEDIEDIESIESIEBPEBP基址基址BXBX计数器计数器CXCX数据数据DXDX栈指针栈指针基址指针基址指针目标变址目标变址源变址源变址EIPEIPEFLAGSEFLAGS指令指针指令指针标志标志代码段代码段数据段数据段堆栈段堆栈段附加段附加段 地址 内存 指令010008B MOV AX,SI01001 04 01002 XX 下一指令01003 XX02000 XX0
48、2001 XX .03234 ED 源操作数03235 BE执行之后:AX=?4)寄存器间接寻址方式)寄存器间接寻址方式PA=CS,DS,SS,ES:BX,BP,SI,DIPA=DS:SI =02000+1234=32343、系统表寄存器、系统表寄存器 作用作用:在保护模式下分别指出对应的表在存储器中的起始:在保护模式下分别指出对应的表在存储器中的起始地址及占存储单元数地址及占存储单元数。nGDTR全局描述符表寄存器全局描述符表寄存器 作用:作用:保存全局描述符表在存储器中的起始地址(保存全局描述符表在存储器中的起始地址(32位)位)及所占存储单元数(及所占存储单元数(16位)。位)。nLDT
49、R局部描述符表寄存器局部描述符表寄存器 作用:作用:保存局部描述符表在存储器中的起始地址及所占存保存局部描述符表在存储器中的起始地址及所占存储单元数。储单元数。nIDIR中断描述符表寄存器中断描述符表寄存器 作用:作用:保存中断描述符表在存储器中的起始地址及所占存保存中断描述符表在存储器中的起始地址及所占存储单元数。储单元数。nTR任务寄存器任务寄存器 作用:作用:保存任务状态段在存储器中的起始地址及所占存储保存任务状态段在存储器中的起始地址及所占存储单元数。单元数。GDTR与GDT表nGDTRGDTR长度为长度为4848位的寄存器。其中位的寄存器。其中3232位用作指位用作指出表在存储器中的
50、基地址,出表在存储器中的基地址,1616位为该表所占位为该表所占的主存空间的大小。它们分别被称为基址字的主存空间的大小。它们分别被称为基址字段和边界字段段和边界字段 基址字段基址字段 边界字段边界字段 主存主存描述符描述符1描述符描述符2描述符描述符N015031GDTRGDTGDT表4 4、标志寄存器标志寄存器 虚拟方式位:虚拟方式位:VM=1VM=1使使8038680386工作在虚拟工作在虚拟80868086方式。方式。恢复标志:恢复标志:RFRF标志位与调试寄存器的断点标志位与调试寄存器的断点或单步操作一起使用。当调试失败后,利用或单步操作一起使用。当调试失败后,利用RFRF标志(使标志