1、 “段加偏移段加偏移”技术:技术:段寄存器存放确定各段起始地址的16位段地址信息。由IP提供或由EU按寻址方式计算出寻址单元的16位偏移地址,也称为逻辑地址或简称偏移量。将偏移地址与左移4位后的段寄存器内容同时送到地址加法器,相加后形成20位实际地址。逻辑地址逻辑地址15150 0段寄存器段寄存器 000015150 0段地址段地址左移左移4 4位位存储器实际地址存储器实际地址19190 0实际地址实际地址(物理地址物理地址)时序:时序:三种总线上出现的信息不但有严格的顺序,而且有准确的时间,称为定时或时序定时或时序。时钟:时钟:时钟脉冲发生器产生具有一定频率和占空比的脉冲信号,称之为机器的主
2、脉冲或时钟。主频:主频:时钟的频率,是机器的一个重要指标。时钟周期:时钟周期:主频的倒数,是CPU的基本时间计量单位。也叫一个T周期或T状态,或一个节拍。8086主频为5MHz,则一个时钟周期为200ns。总线周期:总线周期:在取指令和传送数据时,CPU总线接口部件占用的时间称为总线周期或机器周期。T1T2T3TwT4T1T2T3T4总线周期总线周期TITIT1T2T3TwTwT4总线周期空闲周期 T1T1状态:状态:CPU往多路复用总线上发送地址信息,选中所要寻址的存储单元或外设端口地址。T2T2状态:状态:CPU从总线上撤销地址,并使总线的低16位浮置成高阻状态,为传送数据作准备。T3T3
3、状态:状态:总线的高4位继续提供状态信息,低16位将出现由CPU写出的数据,或CPU从存储器或者外设端口读入的数据。等待状态:等待状态:有些情况下,I/O或M不能及时配合CPU传送数据,在T3状态启动之前它会通过 READY 引脚向CPU发一个“未准备好”信号。CPU在T3状态之后自动插入若干个时钟周期Tw。直至CPU接受到“准备好”信号,自动脱离Tw状态进入T4。T4T4状态:状态:总线周期结束。空闲周期空闲周期T TI I:两个总线周期之间,若干个时钟周期。1 12 23 34 45 56 67 78 89 91010111112121313141415151616171718181919
4、202040403939383837373636353534343333323231313030292928282727262625252424232322222121GNDGNDADAD1414ADAD1313 ADAD1212 ADAD1111ADAD1010ADAD9 9ADAD8 8 ADAD7 7ADAD6 6ADAD5 5ADAD4 4ADAD3 3ADAD2 2ADAD1 1ADAD0 0NMINMIINTRINTRCLKCLKGNDGNDVccVcc(+5V)(+5V)ADAD1515A A1616/S/S3 3A A1717/S/S4 4A A1818/S/S5 5A A19
5、19/S/S6 67SBHE)(0GTRQHOLD)(1GTRQHLDA)(LOCKWR)(2SIOM)(A0QSLEREADYRESET)(0SDEN)(1QSINTA)(2SRDTRDTESTMXMN8 80 08 86 6u数据数据/地址、状态地址、状态/地址复用线的特点地址复用线的特点 功能各异:不同控制线具有不同的作用 方向确定:仅为单向输入或输出 电平触发:不同控制线有不同的电平触发方式 VCC +5V GND 地u 控制线的特点控制线的特点u 电源电源线线分时总线复用:分时总线复用:同一总线在不同时间传输的是不同的信号,这些信号的同一总线在不同时间传输的是不同的信号,这些信号的作
6、用是不同的。作用是不同的。8086 8086 采用总线分时复用方法在不影响采用总线分时复用方法在不影响CPUCPU功能的情况下,减少了功能的情况下,减少了CPUCPU的引的引脚数目,使系统得到简化。脚数目,使系统得到简化。7SBHEBHE7SBHEBHERDRDIOMIOMRDREADY TESTTESTTESTINTRNMIRESETCLK1MXMN0MXMNMXMN最小工作模式:最小工作模式:控制线控制线 MN/MX=HMN/MX=H最大工作模式:最大工作模式:控制线控制线 MN/MX=LMN/MX=L最小工作模式:最小工作模式:控制线由控制线由CPUCPU自身产生自身产生最大工作模式:最
7、大工作模式:控制线由芯片控制线由芯片82888288产生产生最小工作模式:最小工作模式:硬件简单,用于专用机硬件简单,用于专用机最大工作模式:最大工作模式:硬件复杂,用于系统机硬件复杂,用于系统机MXMN8284A8284ARDYRDYHOLDHLDALEAREADYRESETDENINTARDTRDMXMNCLKIOMINTRWRBHE619SA316SA015 ADADRES等待状态产生器CCV)5(VVCCCPU8086收发器收发器82868286(2 2片)片)(可选)(可选)OET地址锁存器地址锁存器82828282(3 3片)片)OESTB27162716EPROMEPROM(2
8、2)2KX8 2KX8 2KX82KX8CEOEMCS-80MCS-80外部设备CSWRRD21422142RAMRAM(4 4)1KX8(2)1KX8(2)1KX8(2)1KX8(2)HCSOWE ODLCSO0ADBABBHEMXMN8284A8284ARDYRDYLEAREADYRESETDENINTARDTMXMNCLKLOCKBHE619SA316SA015 ADADRES等待状态产生器CCVCPU8086收发器收发器82868286(2 2片)片)OET地址锁存器地址锁存器82828282(3 3片)片)OESTB27162716EPROMEPROM(2 2)2KX8 2KX8 2
9、KX82KX8CEOEMCS-80MCS-80外部设备CSWRRD21422142RAMRAM(4 4)1KX8(2)1KX8(2)1KX8(2)1KX8(2)HCSOWE ODLCSO0ADBABBHE总线总线控制器控制器82888288CLK2S1S0S2S1S0SAIOWCIOWCIORCAMWCMWTCMRDCAENIOBCENV5CNCNCN1 1u 2020条条ABAB,寻址,寻址1M1M存储空间;存储空间;u 按字节组织,每个字节按字节组织,每个字节唯一唯一地址地址;u 字节:字节:顺序存放顺序存放u 字字:低低位字节放在位字节放在低低地址中地址中 高高位字节放在位字节放在高高地
10、址中地址中u 双字:双字:低位字是偏移量低位字是偏移量 高位字是段地址高位字是段地址u 规则字:规则字:低低位字节存放在位字节存放在偶数偶数地址地址u 非规则字:非规则字:低低位字节存放在位字节存放在奇数奇数地址地址8086数数 据据偶数地址奇数地址(a)读偶数地址中的字节(b)读奇数地址中的字节被读字节被读字节忽略8086数数 据据偶数地址奇数地址被读字节被读字节忽略8086数据偶数地址奇数地址8086数据偶数地址奇数地址数据(c)读偶数地址中的字数据(d)读奇数地址中的字偶数地址奇数地址被读字被读字被读字节被读字节1 1忽略被读字节被读字节2 2忽略高位高位(奇数奇数)库库512K512K
11、8 8SEL119 AA815 DD低位低位(偶数偶数)库库512K512K8 8SEL119 AA07 DD119 AABHE0A815 DD07 DD07 DD815 DDBHE0A119 AABHE0ASEL015 ADAD815 ADAD08 ADAD20根地址总线,允许寻址1MB存储空间;IP、SP、SI、DI 都是16位,直接寻址大空间64KB;为寻址1MB存储空间,实行分段管理,每一段最长为64KB。段和段之间关系:连续、分开、部分重叠、完全重叠;每个段大小可从一个字节开始,任意递增,最多包含64KB长的连续存储单元;每个段的20位起始地址(段基址),是能被16整除的数,即最后4
12、位为零,可通过程序在段寄存器中装入16位段地址来设置;段地址是20位段基址的前16位。1个程序所用的具体存储空间:1个或多个逻辑段;段基址存在CS、SS、DS、ES中,程序可从中给出的逻辑段中存取代码和数据;段区的分配是由操作系统完成的,系统允许程序员指定。实际地址实际地址(物理地址物理地址):CPU对存储器进行访问时的实际寻址所使用的地址,对8086来讲,用20位二进制数或5位十六进制数表示。逻辑地址逻辑地址:程序和指令中表示的一种地址,由段地址和偏移地址两部分组成,用无符号的16位二进制或4位十六进制数表示。段地址段地址:16位段寄存器直接给出的16位地址。偏移地址偏移地址(偏移量或偏移偏
13、移量或偏移):由指令寻址时的寄存器组合与位移量之和,16位的偏移量。表示所寻址的地址单元距离段起始地址之间的偏移。一个实际地址可对应多个逻辑地址。一个实际地址可对应多个逻辑地址。8086/8088系统中的堆栈是用段定义语句在存储器中定义的一个堆栈段,如同其它逻辑段,可在1MB的存储空间中浮动。一个系统堆栈数目不受限制,栈长度不超过64KB。堆栈由段寄存器SS和堆栈指针SP来寻址 SS:给出堆栈段的段基址;SP:给定当前栈顶,即指出从堆栈的段基址到栈顶的偏移量。栈顶是堆栈操作的唯一出口,是栈地址较小的一端。为加快堆栈操作的速度,均以字为单位进行。AABB889966774455223300113412AABB889966774455223300118899667744552233001110500008105000061050000A10500105021050410506105081050ASPSPSSSS栈顶栈顶栈底栈底栈底栈底10500105021050410506105081050A10500105021050410506105081050ASPSPSSSS栈顶栈顶1234AXAXPUSH AXPUSH AXSPSPSSSS栈底栈底栈顶栈顶1234BXBXPOP BXPOP BXBBAAAXAXPOP AXPOP AX59Thank you!Thank you!