1、2024年年3月月19日日第第1页页本章主要内容本章主要内容8086微处理器内部结构微处理器内部结构18086微处理器外部特征微处理器外部特征238086的存储器结构的存储器结构2024年年3月月19日日第第2页页2.2.对内存空间实行分段管理:对内存空间实行分段管理:将内存分段并设置地址段寄存器,以实现对将内存分段并设置地址段寄存器,以实现对1 1MBMB空间空间的寻址。的寻址。1.1.采用并行流水线工作方式:采用并行流水线工作方式:通过设置指令预取队列(通过设置指令预取队列(IPQIPQ)实现)实现3.3.支持多处理器系统:如支持多处理器系统:如8087 FPU8087 FPU2.1.1
2、8086 CPU的特点的特点2.1 8086微处理器内部结构微处理器内部结构2024年年3月月19日日第第3页页串行工作方式串行工作方式v 8086以前的以前的CPU采用串行工作方式采用串行工作方式取指令取指令1执行执行1取指令取指令2执行执行2CPUBUS忙忙 碌碌忙忙 碌碌取指令取指令3执行执行3忙忙 碌碌空闲空闲空闲空闲空闲空闲t t1 1t t0 0t t2 2t t3 3t t4 4t t5 56个周期执行了个周期执行了3条指令条指令2.1.1 8086 CPU的特点的特点2024年年3月月19日日第第4页页并行工作方式并行工作方式v 8086CPU采用并行工作方式采用并行工作方式取
3、指令取指令1取指令取指令2取指令取指令3取指令取指令4执行执行1执行执行2执行执行3BUS忙碌忙碌执行执行4CPUt t1 1t t0 0t t2 2t t3 3t t4 4t t5 5取指令取指令5执行执行5忙碌忙碌忙碌忙碌忙碌忙碌忙碌忙碌忙碌忙碌6个周期个周期执行了执行了5条条指令指令2.1.1 8086 CPU的特点的特点2024年年3月月19日日第第5页页8086微处理器的一般性能特点:微处理器的一般性能特点:v 16位的内部结构,位的内部结构,16位双向数据信号线;位双向数据信号线;v 20位地址信号线,可寻址位地址信号线,可寻址1M字节存储单元;字节存储单元;v 较强的指令系统;较
4、强的指令系统;v 利用低利用低16位的地址总线来进行位的地址总线来进行I/O端口寻址,可寻址端口寻址,可寻址64K个个I/O端口;端口;v 中断功能强,可处理内部软件中断和外部中断,中断源可中断功能强,可处理内部软件中断和外部中断,中断源可达达256个;个;v 单一的单一的5V电源,单相时钟电源,单相时钟5MHz。2.1.1 8086 CPU的特点的特点2024年年3月月19日日第第6页页v 微处理器的一般结构微处理器的一般结构运算器:运算器:算术逻辑运算算术逻辑运算(ALU),由加法器和,由加法器和 一些辅助逻辑电路组成一些辅助逻辑电路组成 指令流控制指令流控制 时序控制,产生节拍定时信号时
5、序控制,产生节拍定时信号 指令译码和操作控制指令译码和操作控制寄存器组:寄存器组:存放临时数据、运算的中间结果、存放临时数据、运算的中间结果、运算特征、操作数地址运算特征、操作数地址主主要要部部件件控制器控制器2.1.2 8086CPU的内部结构的内部结构2024年年3月月19日日第第7页页AHALBHBLCHCLDHDLSPBPDISI运算寄存器运算寄存器标志寄存器标志寄存器ALU执行部分执行部分控制电路控制电路CSDSSSESIP内部暂存器输入输入输出输出控制控制电路电路1 2 3 4 5 6数据总线(数据总线(16位)位)指令队列指令队列地址总线(地址总线(20位)位)执行单元执行单元总
6、线接口单元总线接口单元数据总线数据总线外部外部总线总线EUBIU1、8086CPU的内部结构的内部结构AXBXCXDX2024年年3月月19日日第第8页页|执行单元(执行单元(EU Execution UnitEU Execution Unit)负责指令译码、运算等执行指令的功能。由指令译负责指令译码、运算等执行指令的功能。由指令译码器,通用寄存器组,状态寄存器等组成。码器,通用寄存器组,状态寄存器等组成。|总线接口单元(总线接口单元(BIU Bus Interface UnitBIU Bus Interface Unit)负责形成负责形成CPUCPU操作的各种总线信号和控制信号,预操作的各种
7、总线信号和控制信号,预取指令操作。由指令预取队列、段寄存器组、地址加法取指令操作。由指令预取队列、段寄存器组、地址加法器及总线控制部件组成。器及总线控制部件组成。2024年年3月月19日日第第9页页 8086结构特点小结结构特点小结v 有有EU和和BIU两个独立的、同时运行的部件两个独立的、同时运行的部件v 二者通过二者通过IPQ构成一个两工位流水线构成一个两工位流水线v 指令被指令被EU和和BIU按流水线方式处理:按流水线方式处理:提高了总线利用率;提高了总线利用率;提高了提高了CPU的执行效率;的执行效率;降低了对存储器存取速度的要求。降低了对存储器存取速度的要求。2024年年3月月19日
8、日第第10页页v 8086寄存器组又称为寄存器组又称为8086的程序设计模型的程序设计模型 它是程序设计中惟一可见的它是程序设计中惟一可见的CPU部件部件 它是系统程序设计员的操作对象它是系统程序设计员的操作对象v 含含14个个16位寄存器,按功能可分为三类:位寄存器,按功能可分为三类:通用寄存器,通用寄存器,8个个 段寄存器,段寄存器,4个个 控制寄存器,控制寄存器,2个个2、8086CPU的内部寄存器的内部寄存器2024年年3月月19日日第第11页页8086寄存器概貌寄存器概貌SPIPPSWAHALBHBLCHCLDHDLAXBXCXDXBPSIDICSDSESSS通用寄存器通用寄存器控制
9、寄存器控制寄存器段寄存器段寄存器16位位16位位代码段代码段 数据段数据段 堆栈段堆栈段 附加段附加段指令指针寄存器指令指针寄存器状态标志寄存器状态标志寄存器累加器累加器基址寄存器基址寄存器计数器计数器数据寄存器数据寄存器数据寄存器数据寄存器堆栈指针寄存器堆栈指针寄存器基数指针寄存器基数指针寄存器源变址寄存器源变址寄存器目的变址寄存器目的变址寄存器指针寄存器指针寄存器2024年年3月月19日日第第12页页1)通用寄存器)通用寄存器 数据寄存器(数据寄存器(AX,BX,CX,DX)地址指针寄存器(地址指针寄存器(SP,BP)变址寄存器(变址寄存器(SI,DI)2024年年3月月19日日第第13页
10、页(1)数据寄存器数据寄存器v 用途:存放临时数据和运算操作数。v 每个均为16位,但又可分为2个8位寄存器,即:AX AH,AL BX BH,BL CX CH,CL DX DH,DL例如:若例如:若(AX)1234H,则则(AH)12H,(AL)34H2024年年3月月19日日第第14页页v AXAX:累加器:累加器 所有所有I/OI/O指令都通过指令都通过AXAX(ALAL)与接口传送信息)与接口传送信息;中间运算结果也多放于中间运算结果也多放于AXAX(ALAL)中;)中;乘除法指令的一个操作数必须在乘除法指令的一个操作数必须在AXAX(ALAL)中。)中。v BXBX:基址寄存器:基址
11、寄存器 在间接寻址中用于存放操作数的基地址。在间接寻址中用于存放操作数的基地址。v CXCX:计数寄存器:计数寄存器 用于在循环指令或串操作指令中存放计数值。用于在循环指令或串操作指令中存放计数值。v DXDX:数据寄存器:数据寄存器 在间接寻址的在间接寻址的I/OI/O指令中存放指令中存放I/OI/O端口地址;端口地址;在在3232位乘除法运算时,存放高位乘除法运算时,存放高1616位数。位数。2024年年3月月19日日第第15页页(2)地址指针寄存器地址指针寄存器v SP:堆栈指针寄存器:堆栈指针寄存器 其内容为堆栈栈顶的偏移地址;其内容为堆栈栈顶的偏移地址;任何堆栈操作后,任何堆栈操作后
12、,SP都会自动增都会自动增/减量。减量。v BP:基址指针寄存器:基址指针寄存器 在间接寻址中用于存放操作数的基地址;在间接寻址中用于存放操作数的基地址;常用于访问存放在堆栈中的数据。常用于访问存放在堆栈中的数据。2024年年3月月19日日第第16页页 BX BX与与BPBP在应用上的区别在应用上的区别v 作为通用寄存器,二者均可用于存放数据;作为通用寄存器,二者均可用于存放数据;v 作为基址寄存器,默认情况下:作为基址寄存器,默认情况下:用用BX作为指针所访问的数据在作为指针所访问的数据在数据段数据段(DS段)。段)。用用BP作为指针所访问的数据在作为指针所访问的数据在堆栈段堆栈段(SS段)
13、。段)。注:注:间接寻址时间接寻址时 仅仅BX、BP、SI、DI可用于存储器寻址;可用于存储器寻址;仅仅DX可用于可用于I/O寻址。寻址。2024年年3月月19日日第第17页页(3)变址寄存器)变址寄存器v SI:源变址寄存器,用于访问源操作数:源变址寄存器,用于访问源操作数v DI:目标变址寄存器,用于访问目的操作数:目标变址寄存器,用于访问目的操作数 常用于操作数的间接寻址或变址寻址。常用于操作数的间接寻址或变址寻址。在串操作指令中,在串操作指令中,SI存放存放源操作数源操作数的偏移地址,而的偏移地址,而DI存放存放目标操作数目标操作数的偏移地址。的偏移地址。2024年年3月月19日日第第
14、18页页2、段寄存器、段寄存器用于存放逻辑段的段基地址(简称段地址)v CS:代码段寄存器。代码段存放指令代码v DS:数据段寄存器 v ES:附加段寄存器v SS:堆栈段寄存器:指示堆栈区域的位置这两个段存放操作数这两个段存放操作数堆栈段堆栈段SS数据段数据段DS/ES代码段代码段CS2024年年3月月19日日第第19页页段寄存器与指针寄存器的搭配关系段寄存器与指针寄存器的搭配关系 IPCSSI、BXDSSP、BPSSDIES64K64K64K64K数据段数据段堆栈段堆栈段附加段附加段代码段代码段2024年年3月月19日日第第20页页3、控制寄存器、控制寄存器v IP:指令指针寄存器:指令指
15、针寄存器 其内容为下一条要执行的指令的偏移地址。其内容为下一条要执行的指令的偏移地址。v PSW:标志寄存器:标志寄存器 存放指令执行结果的特征:存放指令执行结果的特征:有些指令(如算术指令)要改变有些指令(如算术指令)要改变PSW的内容的内容(影响影响FLAGS);有些指令对有些指令对FLAGS无影响。无影响。6个状态标志位个状态标志位(CF,SF,AF,PF,OF,ZF)3个控制标志位个控制标志位(IF,TF,DF)ODITSZAPC1502467891011FLAGS2024年年3月月19日日第第21页页OF=1表明有表明有溢出溢出 状态标志状态标志是操作在执行后,决定是操作在执行后,决
16、定ALU处于何种状态,这处于何种状态,这种标志会影响后面的操作。种标志会影响后面的操作。控制标志控制标志是人为设置的,指令系统中有专门的指令用于是人为设置的,指令系统中有专门的指令用于控制标志的设置和清除控制标志的设置和清除。溢溢 出出 标标 志志 位位OF方方 向向 标标 志志 位位DF中断允许中断允许 标标 志志 位位IF单单 步步 标标 志志 位位TF符符 号号 标标 志志 位位SF零零 标标 志志 位位ZF半半 加加 标标 志志 位位AF奇奇 偶偶 标标 志志 位位PF进进 位位 标标 志志 位位CF 150运算结果最运算结果最高位为高位为1时,时,SF=1运算结运算结果为零果为零时,
17、时,ZF=1加(减)加(减)法时,当法时,当位位3需向位需向位4有进(借)有进(借)位时,位时,AF=1加(减)加(减)法时,出法时,出现进(借)现进(借)位,位,CF=1当结果的低当结果的低8位位中中1的个数为偶的个数为偶数时,数时,PF=1IF=1允许允许可屏蔽中断可屏蔽中断当当TF=1时,时,8088将进将进入单步工入单步工作状态作状态DF=1时,串时,串操作指令从高操作指令从高地址向低地址地址向低地址处处理字符串处处理字符串2024年年3月月19日日第第22页页引脚定义的方法可大致分为:引脚定义的方法可大致分为:v 每个引脚只传送一种信息(如每个引脚只传送一种信息(如RD)v 电平的高
18、低代表不同的含义(如电平的高低代表不同的含义(如M/IO)v 在不同模式下有不同的名称和定义(如在不同模式下有不同的名称和定义(如WR/LOCK)v 分时复用引脚(如分时复用引脚(如AD15AD0)v 引脚的输入、输出分别传送不同的信息(如引脚的输入、输出分别传送不同的信息(如RQ/GT0)2.2.1 8086/88的引脚与功能的引脚与功能2.2 8086微处理器的外部特性微处理器的外部特性2024年年3月月19日日第第23页页8086的引脚的引脚8086CPUGNDAD14AD13AD12AD11AD10AD9AD8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLKGNDV
19、CCAD15A16/S3A17/S4A18/S5A19/S6MN/MXRDHOLD RQ/GT0HLDA RQ/GT1WRLOCKM/IO S2DT/R S1DEN S0ALE QS0INTA QS1TESTREADYRESET12345678910111213141516171819202122232425262728293031323334353637383940BHE/S72024年年3月月19日日第第24页页8088GNDA14A13A12A11A10A9A8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLKGNDVCCA15A16/S3A17/S4A18/S5A19
20、/S6SSOMN/MXRDHOLD RQ/GT0HLDA RQ/GT1WRLOCKIO/M S2DT/R S1DEN S0ALE QS0INTA QS1TESTREADYRESET123456789101112131415161718192021222324252627282930313233343536373839408088的引脚的引脚2024年年3月月19日日第第25页页v 8086可工作于两种模式下,即:可工作于两种模式下,即:最小模式和最大模式最小模式和最大模式v 最小模式不支持多处理器结构。存储器和最小模式不支持多处理器结构。存储器和I/O控制信号全部控制信号全部由由CPU产生。产
21、生。v 最大模式支持多处理器结构如增加数学协处理器最大模式支持多处理器结构如增加数学协处理器8087。CPU的部分控制总线信号需要由总线控制器的部分控制总线信号需要由总线控制器8288来产生。来产生。注:注:80286以后的以后的CPU不再区分这两种工作模式。不再区分这两种工作模式。v MN/MX 工作模式控制工作模式控制=0(接地):工作于最大模式;(接地):工作于最大模式;=1(接(接Vcc):工作于最小模式。):工作于最小模式。2024年年3月月19日日第第26页页 地址、数据、状态:地址、数据、状态:v AD15AD0:三态:三态 地址地址/数据复用引脚。数据复用引脚。ALE=1时作为
22、地址线时作为地址线A16A0,ALE=0时作为时作为数据线数据线D16D0。传送地址时为输出,传送数据时为双向。传送地址时为输出,传送数据时为双向。v A19-A16/S6-S3:输出,三态:输出,三态 地址地址/状态复用引脚。状态复用引脚。ALE=1时作为地址线时作为地址线A19A16,ALE=0时作时作为状态信号。为状态信号。附加段寄存器(附加段寄存器(ES)1 1代码段寄存器(代码段寄存器(CS)或不用)或不用1 0堆栈段寄存器(堆栈段寄存器(SS)0 1数据段寄存器(数据段寄存器(DS)0 0当前使用的段寄存器当前使用的段寄存器S4 S32024年年3月月19日日第第27页页 控制信号
23、:控制信号:v WR:输出,三态:输出,三态 写选通信号,表示写选通信号,表示CPU正在写数据到正在写数据到MEM或或I/O设备。设备。v RD:输出,三态输出,三态 读信号,表示读信号,表示CPU正在从总线上读来自于正在从总线上读来自于MEM或或I/O设设备的数据。备的数据。v M/IO:输出,三态输出,三态 区分是读写存储器还是读写区分是读写存储器还是读写I/O端口(即地址总线上的端口(即地址总线上的地址是存储器地址还是地址是存储器地址还是I/O端口地址)。端口地址)。2024年年3月月19日日第第28页页v DEN:输出,三态输出,三态 数据总线允许信号。用来打开外部数据总线缓冲器。数据
24、总线允许信号。用来打开外部数据总线缓冲器。v DT/R:输出,三态输出,三态 表明表明CPU正在传送还是接收数据,用来作为外部数据总正在传送还是接收数据,用来作为外部数据总线缓冲器的方向控制;线缓冲器的方向控制;v ALE:输出输出 地址锁存允许信号,表示地址地址锁存允许信号,表示地址/数据总线上传输的是地数据总线上传输的是地址信号。址信号。2024年年3月月19日日第第29页页v RESET:输入:输入 复位信号,保持复位信号,保持4 4个以上时钟周期的高电平时将引起个以上时钟周期的高电平时将引起CPUCPU进入复位过程(进入复位过程(IFIF清清0 0,并从存储单元,并从存储单元FFFF0
25、HFFFF0H开始执行开始执行指令);指令);内部寄存器内部寄存器内容内容内部寄存器内部寄存器内容内容AX0000HSS0000HBX0000HES0000HCX0000HIP0000HDX0000HPSW0000HCSFFFFH指令队列指令队列清空清空DS0000H2024年年3月月19日日第第30页页v BHE/S7:输出:输出 高高8位数据总线允许。在读位数据总线允许。在读/写操作期间允许写操作期间允许高高8位数据位数据总线总线D16D8有效(即读有效(即读/写数据的高写数据的高8位)。位)。v READY:输入:输入 准备就绪。用于与存储器或准备就绪。用于与存储器或I/O接口的同步。接
26、口的同步。=0时时CPU进入等待状态(插入进入等待状态(插入1个或多个等待周期)。个或多个等待周期)。2024年年3月月19日日第第31页页READY引脚的作用引脚的作用总线周期总线周期T2T1T3T4时钟周期时钟周期总线周期总线周期T2T1T3TwaitT4标准总线标准总线周期周期增加了等待增加了等待状态的总线状态的总线周期周期若在若在T3周期上升沿检测到周期上升沿检测到READY=0,将插入等待周期,插入的个数取决于,将插入等待周期,插入的个数取决于READY何时变为何时变为1。采样采样2024年年3月月19日日第第32页页数据数据/地址分离电路地址分离电路(最小模式最小模式)8282或或
27、3738086BHE/S7A19-A16/S6-S3AD15-AD0OE8286或或245OEDIRD15-D0DT/RALESTBA19-A0BHE地址总线地址总线数据总线数据总线DENCPU总总线线系统总线系统总线2024年年3月月19日日第第33页页8088CPU最小模式下总线周期状态最小模式下总线周期状态IO/M、DT/R、SSO:总线周期状态信号。输出,三态:总线周期状态信号。输出,三态无意义无意义0 1 1暂停暂停1 1 1写存储器写存储器0 1 0写写I/O端口端口1 1 0读存储器读存储器0 0 1读读I/O端口端口1 0 1取指令取指令0 0 0中断响应中断响应1 0 0操操
28、 作作IO/M DT/R SSO操操 作作IO/M DT/R SSO2024年年3月月19日日第第34页页 中断请求和响应信号中断请求和响应信号v INTR:输入:输入 可屏蔽中断请求输入端,可屏蔽中断请求输入端,CPU要检查要检查IF状态状态v NMI:输入:输入 非屏蔽中断请求输入端,非屏蔽中断请求输入端,CPU不检查不检查IF状态状态v INTA:输出:输出 中断响应信号,表示中断响应信号,表示CPU已进入中断响应周期。已进入中断响应周期。此信号常用来选通中断向量号。此信号常用来选通中断向量号。2024年年3月月19日日第第35页页总线保持信号总线保持信号v HOLD:输入:输入 总线保
29、持请求。用来直接存储器存取总线保持请求。用来直接存储器存取(DMA)。当。当CPU以以外的其他设备要求占用总线以便访问存储器时,通过此外的其他设备要求占用总线以便访问存储器时,通过此引脚向引脚向CPU发出请求。发出请求。HOLD=1时,时,CPU停止执行指令,并将地址停止执行指令,并将地址/数据总线数据总线和控制总线中的所有三态控制线置为高阻状态。和控制总线中的所有三态控制线置为高阻状态。v HLDA:输出:输出 总线保持响应。总线保持响应。CPU对对HOLD信号的响应信号。指示信号的响应信号。指示CPU已进入保持状态。已进入保持状态。2024年年3月月19日日第第36页页v其它信号其它信号v
30、 TEST:输入:输入 测试信号。执行测试信号。执行WAIT指令时将测试此引脚的状态。指令时将测试此引脚的状态。=0时,时,WAIT指令相当于空操作指令相当于空操作(NOP)。=1时,时,WAIT指令将重复测试直到它变为指令将重复测试直到它变为0。通常此引脚与通常此引脚与8087算术协处理器相连。算术协处理器相连。v CLK:输入:输入 时钟引脚。为时钟引脚。为CPU提供基本的定时信号。提供基本的定时信号。占空比必须为占空比必须为33(高高1/3,低,低2/3)。2024年年3月月19日日第第37页页2、最大模式下的主要引线、最大模式下的主要引线S2、S1、S0:总线周期状态信号。输出,三态:
31、总线周期状态信号。输出,三态QS1、QS0:指令队列状态信号。输出,三态:指令队列状态信号。输出,三态S2 S1 S0操 作S2 S1 S0操 作 0 0 0中断响应中断响应 1 0 0取指令取指令 0 0 1读读I/O端口端口 1 0 1读存储器读存储器 0 1 0写写I/O端口端口 1 1 0写存储器写存储器 0 1 1暂停暂停 1 1 1无意义无意义QS1、QS0含 义 0 0无操作无操作 0 1从指令队列中第一个字节取指令代码从指令队列中第一个字节取指令代码 1 0指令队列空指令队列空 1 1从指令队列中取走后续字节代码从指令队列中取走后续字节代码2024年年3月月19日日第第38页页
32、RQ/GT0、RQ/GT1:总线请求总线请求/响应信号。输入响应信号。输入/输出,三态输出,三态 类似于最小模式下的类似于最小模式下的HOLD、HLDA信号,输入时为信号,输入时为总线请求信号,输出时为总线响应信号。总线请求信号,输出时为总线响应信号。RQ/GT0有较有较高的优先权。高的优先权。LOCK:总线锁定信号。输出,三态总线锁定信号。输出,三态 为低电平时将封锁总线,不允许其他总线控制设备获为低电平时将封锁总线,不允许其他总线控制设备获得总线控制权。得总线控制权。LOCK信号由指令前缀信号由指令前缀LOCK产生。产生。2024年年3月月19日日第第39页页v 时序是计算机操作运行的时间
33、顺序。时序是计算机操作运行的时间顺序。v 工作时序分为很多小的时间片工作时序分为很多小的时间片:时钟周期时钟周期 一个时钟脉冲所持续的时间。时钟周期越短,一个时钟脉冲所持续的时间。时钟周期越短,CPUCPU执行速度越快。执行速度越快。总线周期总线周期 通过总线对存储器或通过总线对存储器或I/OI/O接口进行一次访问所需要的时间。一般包接口进行一次访问所需要的时间。一般包括括4 4个时钟周期。个时钟周期。在在5MHz的工作频率时,一个标准总线周期为的工作频率时,一个标准总线周期为0.8s。指令周期指令周期 CPUCPU完整地执行一条指令所花的时间。指令周期的长短依指完整地执行一条指令所花的时间。
34、指令周期的长短依指令的复杂程度而有所不同。令的复杂程度而有所不同。2.2.2 8086的工作时序的工作时序2024年年3月月19日日第第40页页T1T2T3TWT4T1T1T1T2T3一个总线周期一个总线周期CLK地地 址址数数 据据 输输 入入浮浮 空空地地 址址地地 址址地地 址址数数 据据 输输 出出数据数据/地地址总线址总线数据数据/地地址总线址总线读读写写空闲周期空闲周期2024年年3月月19日日第第41页页 总线周期中各时钟周期的操作总线周期中各时钟周期的操作v T1周期周期 CPU向存储器或向存储器或I/O发送地址发送地址 CPU向地址向地址/数据分离器(地址锁存器)发送数据分离
35、器(地址锁存器)发送ALE信号信号v T2周期周期 给存储器或给存储器或I/O发送写入的数据发送写入的数据 测试测试READY引脚状态,以决定是否插入等待周期引脚状态,以决定是否插入等待周期 发出发出RD或或WR信号信号v T3周期周期 等待存储器或等待存储器或I/O存取数据完成存取数据完成 使数据在使数据在CPU与存储器或与存储器或I/O之间传输之间传输v T4周期周期 完成总线操作,撤销数据及各种控制、状态信号。完成总线操作,撤销数据及各种控制、状态信号。2024年年3月月19日日第第42页页数据写入存储器时的总线操作数据写入存储器时的总线操作 写总线周期写总线周期由由ALE信号将地址锁存
36、到地址锁存器信号将地址锁存到地址锁存器DEN=0并且并且DT/R=1时打时打开总线缓冲器,将其放到系开总线缓冲器,将其放到系统数据总线上统数据总线上此信号与此信号与M/IO信号共同构成信号共同构成存储器写控制信号,将数据写入存储器写控制信号,将数据写入存储器存储器ADAD0 0ADAD1515A A1616A A19192024年年3月月19日日第第43页页数据从存储器读出的总线操作数据从存储器读出的总线操作读总线周期读总线周期DEN=0并且并且DT/R=0时打开总线时打开总线缓冲器,将其放到缓冲器,将其放到CPU总线上,供总线上,供CPU读入读入 较完整较完整的读总线的读总线周期周期此信号与
37、此信号与M/IO信号共同构信号共同构成存储器读控制信号成存储器读控制信号由由ALE信号将地址锁存到地址锁存器信号将地址锁存到地址锁存器ADAD0 0ADAD1515A A1616A A19192024年年3月月19日日第第44页页2.2.3 最小模式与最大模式总线形成最小模式与最大模式总线形成系统总线将微型计算机各个部件连接起来。系统总线将微型计算机各个部件连接起来。CPU与微型机内部各部件的通信是依靠系统总与微型机内部各部件的通信是依靠系统总线来完成的。线来完成的。2.2 8086微处理器的外部特性微处理器的外部特性2024年年3月月19日日第第45页页1、最小模式下系统总线形成、最小模式下
38、系统总线形成DEN时钟发时钟发生器生器CLKREADYRESETMN/MX5VIO/MRDWRDT/RABTOE82868282STB OE8282STB OE8282STB OEA19A16ALEA15A8AD7AD08088系统总线系统总线D7D0A19A16A15A8A7A0IO/MRDWRA0A1A2A3A4A5A6A7OEB7B6B5B4B3B2B1B0T8286。1。BHEDQCLK。DI0DI1DI2DI3DI4DI5DI6DI7STBDO7DO6DO5DO4DO3DO2DO1DO0OE。82822024年年3月月19日日第第46页页2、最大模式下系统总线的形成、最大模式下系统总
39、线的形成时钟发时钟发生器生器CLKREADYRESETMN/MX S0ABTOE82868282STB OE8282STB OE8282STB OEA19A16A15A8AD7AD08088系统总线系统总线A19A16A15A8A7A0AD7AD0 S1 S2 S2 S1 S0DT/RALEDEN8288AIOWCAMWCIOWCIORCMRDCINTA状态译状态译码器码器控制电路控制电路命令信号发命令信号发生器生器S0S1S2AENCLKIOBCEN控制信号发控制信号发生器生器DT/RALEMCE/PDENDENAIOWCAMWCIOWC MRDC IORC MWTC状态信号状态信号控制信号
40、输入控制信号输入控制信号输出控制信号输出总线命令信号总线命令信号8288总线控制器总线控制器BHE2024年年3月月19日日第第47页页2.3 8086的存储器结构的存储器结构 计算机存储系统中,基本存储单位为字节计算机存储系统中,基本存储单位为字节(Byte),即计算机以字节为单位编址,每个字),即计算机以字节为单位编址,每个字节的存储单元都分配有一个独一无二地址编码。节的存储单元都分配有一个独一无二地址编码。8086/8088CPU有有20根地址线,可以直接访问的根地址线,可以直接访问的地址空间为地址空间为220=1MB,这一兆字节(,这一兆字节(1MB)空间)空间按照按照00000HFF
41、FFFH编址。编址。2024年年3月月19日日第第48页页2.3 8086的存储器结构的存储器结构 8086/8088系统将可寻址的系统将可寻址的1MB存储空间分成若干个存储空间分成若干个逻辑段,段起始于存储器内逻辑段,段起始于存储器内16字节整倍数的边界处。用字节整倍数的边界处。用段段和和段内偏移段内偏移的组合访问存储单元,每个段的大小为的组合访问存储单元,每个段的大小为64KB,存储单元的地址都由段起始地址加偏移地址形成,存储单元的地址都由段起始地址加偏移地址形成,段地址被装入段寄存器中以供寻址使用,偏移地址用于段地址被装入段寄存器中以供寻址使用,偏移地址用于在在64KB存储器段内选择任一
42、单元存储器段内选择任一单元2.3.1 存储器的分段管理存储器的分段管理2024年年3月月19日日第第49页页v 存储器划分存储器划分代码段代码段数据段数据段堆栈段堆栈段附加段附加段程序区:存放程序的指令代码程序区:存放程序的指令代码数据区:存放原始数据,中间结果和最后运算结果数据区:存放原始数据,中间结果和最后运算结果堆栈区:存放压入堆栈的数据和状态信息堆栈区:存放压入堆栈的数据和状态信息IPCSSI、BXDSSP、BPSSDIES64K64K64K64K2024年年3月月19日日第第50页页物理地址物理地址8088/80868088/8086系统中存储器按字节编址,可寻址的系统中存储器按字节
43、编址,可寻址的存储空间为存储空间为1 1M M字节,其中任何一个内存单元都有一个字节,其中任何一个内存单元都有一个2020位的位的地址,称为内存单元的物理地址。(地址,称为内存单元的物理地址。(2020位)位)段基址段基址采用内存分段的方法将采用内存分段的方法将1 1M M字节的内存分为若干段,字节的内存分为若干段,每个段起始地址的低每个段起始地址的低4 4位一般为位一般为0 0,高,高1616位称为段基址,放入位称为段基址,放入段寄存器中。(段寄存器中。(1616位)位)偏移地址偏移地址段内某内存单元的物理地址相对于段起始地址的段内某内存单元的物理地址相对于段起始地址的位移量,称为段内偏移地
44、址,又称为有效地址位移量,称为段内偏移地址,又称为有效地址(EA)(EA)。(。(1616位)位)逻辑地址逻辑地址将段基址和偏移地址称为逻辑地址。将段基址和偏移地址称为逻辑地址。表示为:表示为:段基址:偏移地址段基址:偏移地址2024年年3月月19日日第第51页页v 设段起始地址=60000Hv 段地址v 偏移地址 0FFFFH6A000H12H60000H6 0 0 0段寄存器段寄存器偏移地址偏移地址A000H 0 0 0 0段地址段地址(16位位)段起始地址段起始地址 2024年年3月月19日日第第52页页 物理地址的形成物理地址的形成段基址(段基址(16)偏移地址(偏移地址(16)物理地
45、址(物理地址(20)0000例:若某内存单元处于数据例:若某内存单元处于数据段中,(段中,(DS)=8915H,偏移地址为偏移地址为0100H,求该单,求该单元的物理地址?元的物理地址?89150H+)0100H89250H8915 H:0100H2024年年3月月19日日第第53页页默认段和偏移寄存器默认段和偏移寄存器v 80868086规定了访问存储器段的规则:规定了访问存储器段的规则:此规则定义了段地址寄存器和偏移地址寄存器的组合方式,此规则定义了段地址寄存器和偏移地址寄存器的组合方式,其默认规则如下表:其默认规则如下表:段地址段地址默认偏移地址默认偏移地址用于访问用于访问CSIP指令指
46、令SSSP、BP堆栈中的数据堆栈中的数据DSBX、DI、SI、8位或位或16位数位数数据段中的数据数据段中的数据ES串指令的串指令的DI目标串操作数目标串操作数2024年年3月月19日日第第54页页例例1:v 已知已知CS=1055H,DS=250AH ES=2EF0H,SS=8FF0H 数据段中某操作数偏移地址数据段中某操作数偏移地址=0204=0204H H 各段首地址各段首地址=?=?画出各段在内存中的分布画出各段在内存中的分布 该操作数的物理地址该操作数的物理地址=?=?v 这个例子说明这个例子说明 段与段可以不连续段与段可以不连续 段之间可以重叠段之间可以重叠10550H250A0H
47、2EF00H8FF00HDS段段ES段段SS段段 CS段段2024年年3月月19日日第第55页页例例2:v 设当前执行的程序中某条指令的物理地址为设当前执行的程序中某条指令的物理地址为5A1F6H,(1)若偏移地址为)若偏移地址为2386H,则程序所在的段的段基址,则程序所在的段的段基址=?(2)若偏移地址不知道,当前)若偏移地址不知道,当前CS的内容可能为多少?的内容可能为多少?解:解:(1 1)5A1F6H-2386H=57E70H5A1F6H-2386H=57E70H,所以,段基址,所以,段基址=57E7H=57E7H。(2 2)由于段地址能被)由于段地址能被1616整除,最低位为整除,
48、最低位为0H0H,则偏移地,则偏移地址最低位必定为址最低位必定为6H6H。因此偏移地址的取值范围为。因此偏移地址的取值范围为0006H0006H0FFF6H0FFF6H。5 5A1F6H-0FFF6H=4A200HA1F6H-0FFF6H=4A200H 5A1F6H-0006H=5A1F0H 5A1F6H-0006H=5A1F0H 所以,所以,CSCS的内容可能值为的内容可能值为4A20H4A20H5A1FH5A1FH2024年年3月月19日日第第56页页2.3.2 8086存储器分体结构存储器分体结构 8086CPU有有16位外部数据线,可一次访问两个字节(位外部数据线,可一次访问两个字节(
49、1个字个字word),),因此将因此将1MB存储空间分成两个存储空间分成两个512KB的存储体。的存储体。512K 8bit偶地址存储体A0=0512K 8bit奇地址存储体A0=100000H00001H00002H00002HFFFFEHFFFFFH078 1 52.3 8086的存储器结构的存储器结构A0=0有效有效BHE=0有效有效2024年年3月月19日日第第57页页8086存储器分体结构存储器分体结构A0A19A1BHE数据总线数据总线DB15DB8数据总线数据总线DB7DB0存储体与总线连接图存储体与总线连接图OEA18A0D15D8奇地址存储体奇地址存储体OEA18A0D7D0
50、偶地址存储体偶地址存储体80862024年年3月月19日日第第58页页2.3.2 8086存储器分体结构存储器分体结构 8086CPU可一次访问一个字节(可一次访问一个字节(8位)或一个字(位)或一个字(16位)。访问一位)。访问一个字节时,偶地址单元在低八位数据线,奇地址单元在高八位数据线。个字节时,偶地址单元在低八位数据线,奇地址单元在高八位数据线。当访问一个字(当访问一个字(16位)时,从偶地址开始,可一次完成,若从奇地位)时,从偶地址开始,可一次完成,若从奇地址开始,则需要两次访问才可完成。址开始,则需要两次访问才可完成。8086的读的读/写操作写操作偶地址存储体偶地址存储体奇地址存储