1、第第第第22章章章章 8086 CPU8086 CPU中国科学技术大学2.3 80862.3 8086存储器存储器微型计算机原理与接口技术微型计算机原理与接口技术第第5版版第第2章章 8086 CPU第第第第22章章章章 8086 CPU8086 CPU中国科学技术大学2.3 80862.3 8086存储器存储器2.3 8086的存储器组织的存储器组织第第第第22章章章章 8086 CPU8086 CPU中国科学技术大学2.3 80862.3 8086存储器存储器CPU的工作方式的工作方式l8086/8088 8086/8088 只只只只能能能能工工工工作作作作于于于于实实实实模模模模式式式式
2、仅仅仅仅能能能能访访访访问问问问 2 22 20 0=1MB=1MB存储器存储器存储器存储器l8028680286及及及及以以以以上上上上CPUCPU可可可可工工工工作作作作于于于于实实实实模模模模式式式式和和和和保保保保护护护护模模模模式式式式。在保护模式下,寻址范围为。在保护模式下,寻址范围为。在保护模式下,寻址范围为。在保护模式下,寻址范围为 80286 80286:寻址:寻址:寻址:寻址2 22424=16MB=16MB内存内存内存内存 80386 80386:寻址:寻址:寻址:寻址2 23232=4GB=4GB内存内存内存内存第第第第22章章章章 8086 CPU8086 CPU中
3、国科学技术大学2.3 80862.3 8086存储器存储器2.3.1 段地址和偏移地址段地址和偏移地址2.3.2 8086存存储器的分体器的分体结构构第第第第22章章章章 8086 CPU8086 CPU中国科学技术大学2.3 80862.3 8086存储器存储器2.3.1 段地址和偏移地址段地址和偏移地址1.段地址和偏移地址组合成物理地址段地址和偏移地址组合成物理地址l8086/80888086/8088有有有有2020根根根根地地地地址址址址线线,寻寻址址址址2 22020=1MB=1MB单单元元元元,地地地地址范址范址范址范围围00000FFFFFH00000FFFFFH。l每每每每个个
4、个个单单元元元元有有有有1 1个个个个绝绝对对地地地地址址址址,即即即即物物物物理理理理地地地地址址址址,CPUCPU应应先先先先确定物理地址,才能存取确定物理地址,才能存取确定物理地址,才能存取确定物理地址,才能存取该单该单元。元。元。元。l1MB1MB内内内内存存存存空空空空间间分分分分成成成成多多多多个个个个逻逻辑辑段段段段,每每每每段段段段最最最最大大大大2 21616=64KB64KB,段内地址,段内地址,段内地址,段内地址连续连续。l各各各各段段段段相相相相互互互互独独独独立立立立,可可可可连连续续排排排排列列列列,也也也也可可可可部部部部分分分分重重重重叠叠叠叠或或或或完完完完全
5、重叠。全重叠。全重叠。全重叠。第第第第22章章章章 8086 CPU8086 CPU中国科学技术大学2.3 80862.3 8086存储器存储器l用两个用两个用两个用两个1616位寄存器来形成位寄存器来形成位寄存器来形成位寄存器来形成2020位地址,形式位地址,形式位地址,形式位地址,形式为为 段地址:偏移量段地址:偏移量段地址:偏移量段地址:偏移量 这这也称也称也称也称为为逻辑逻辑地址,地址,地址,地址,段地址也称段地址也称段地址也称段地址也称为为段基地址段基地址段基地址段基地址。l段基地址段基地址段基地址段基地址定定定定义义任何任何任何任何64KB64KB存存存存储储器的起始地址,器的起始
6、地址,器的起始地址,器的起始地址,偏移偏移偏移偏移量量量量在在在在64KB64KB存存存存储储器中器中器中器中选择选择任一任一任一任一单单元。元。元。元。l由由由由逻辑逻辑地址地址地址地址转换为转换为物理地址的公式:物理地址的公式:物理地址的公式:物理地址的公式:2020位物理地址位物理地址=段基地址段基地址 16+1616+16位偏移量位偏移量 即:段寄存器中的即:段寄存器中的即:段寄存器中的即:段寄存器中的1616位数自位数自位数自位数自动动左移左移左移左移4 4位位位位+1616位偏移量位偏移量位偏移量位偏移量就形成就形成就形成就形成2020位物理地址。位物理地址。位物理地址。位物理地址
7、l由由由由BIUBIU的的的的地址加法器地址加法器地址加法器地址加法器 来来来来计计算物理地址。算物理地址。算物理地址。算物理地址。第第第第22章章章章 8086 CPU8086 CPU中国科学技术大学2.3 80862.3 8086存储器存储器l设设段地址:偏移地址段地址:偏移地址段地址:偏移地址段地址:偏移地址=1234=1234:0025H0025H,形成,形成,形成,形成2020位物位物位物位物理地址理地址理地址理地址12365H12365H的的的的过过程:程:程:程:第第第第22章章章章 8086 CPU8086 CPU中国科学技术大学2.3 80862.3 8086存储器存储器l
8、 l如何用段基地址和偏移地址形成一个段,由偏移地址如何用段基地址和偏移地址形成一个段,由偏移地址如何用段基地址和偏移地址形成一个段,由偏移地址如何用段基地址和偏移地址形成一个段,由偏移地址来来来来选择选择段中的一个存段中的一个存段中的一个存段中的一个存储单储单元。元。元。元。n n段段基基址址=1000H1000H,该该段段始始址址=1000H1000H 16=10000H16=10000Hn n段段内内偏偏址址范范围围为为0000 0000 FFFFHFFFFH,即即段段开开始始到到所所选单元的距离选单元的距离n n段段长长=64KB,64KB,该该段段末末址址=1000H1000H 16+
9、FFFFH 16+FFFFH=1FFFFH=1FFFFH即即段段始始址址+FFFFH=FFFFH=该该段段的结束地址。的结束地址。第第第第22章章章章 8086 CPU8086 CPU中国科学技术大学2.3 80862.3 8086存储器存储器例例2.4 2.4 设设某某某某个个个个段段段段寄寄寄寄存存存存器器器器的的的的内内内内容容容容为为3000H3000H,则则该该段段段段的的的的起起起起始始始始地地地地址址址址和和和和末末末末地地地地址址址址各各各各是是是是什什什什么么么么?如如如如果果果果偏偏偏偏移移移移地地地地址址址址OFFSET OFFSET=500H=500H,则该单则该单元的
10、物理地址是多少?元的物理地址是多少?元的物理地址是多少?元的物理地址是多少?l根据物理地址的形成方法可知:根据物理地址的形成方法可知:根据物理地址的形成方法可知:根据物理地址的形成方法可知:段起始地址段起始地址段起始地址段起始地址为为3000H3000H 16=30000H16=30000H段段段段结结束地址束地址束地址束地址为为3000H3000H 16+FFFFH=3FFFFH16+FFFFH=3FFFFH偏移地址偏移地址偏移地址偏移地址OFFSET=500HOFFSET=500H时时,该单该单元的物理地址元的物理地址元的物理地址元的物理地址=3000H=3000H 16+500H=305
11、00H16+500H=30500H第第第第22章章章章 8086 CPU8086 CPU中国科学技术大学2.3 80862.3 8086存储器存储器l l实实实实模式下,只能从能被模式下,只能从能被模式下,只能从能被模式下,只能从能被1616整除的那些单元开始分段。整除的那些单元开始分段。整除的那些单元开始分段。整除的那些单元开始分段。l l一个物理地址可以由不同的逻辑地址来形成。一个物理地址可以由不同的逻辑地址来形成。一个物理地址可以由不同的逻辑地址来形成。一个物理地址可以由不同的逻辑地址来形成。例例2.5 一个存一个存一个存一个存储单储单元的物理地址元的物理地址元的物理地址元的物理地址为为
12、12345H12345H,它可以由哪,它可以由哪,它可以由哪,它可以由哪些些些些逻辑逻辑地址形成地址形成地址形成地址形成?l解答:解答:解答:解答:1200 1200:0345H 0345H 1234 1234:0005H0005H 1232 1232:0025H 0025H 这说明从这说明从这说明从这说明从12000H12000H单元偏移单元偏移单元偏移单元偏移345H345H单元和从单元和从单元和从单元和从12340H12340H偏移偏移偏移偏移5 5个单元等,均指向同一个内存单元。个单元等,均指向同一个内存单元。个单元等,均指向同一个内存单元。个单元等,均指向同一个内存单元。第第第第22
13、章章章章 8086 CPU8086 CPU中国科学技术大学2.3 80862.3 8086存储器存储器2.默认段寄存器和偏移地址寄存器默认段寄存器和偏移地址寄存器lCSCS和和和和IPIP组组合合合合寻寻址下一条要址下一条要址下一条要址下一条要执执行指令的字行指令的字行指令的字行指令的字节单节单元;元;元;元;lSSSS和和和和SPSP、BPBP组组合合合合寻寻址存址存址存址存储储器堆器堆器堆器堆栈栈段中的数据;段中的数据;段中的数据;段中的数据;lDSDS和和和和BXBX、SISI、DIDI组组合合合合寻寻址址址址数数数数据据据据段段段段中中中中的的的的8 8位位位位或或或或1616位位位位
14、数据;数据;数据;数据;lESES和和和和DIDI组组合合合合寻寻址目的串地址。址目的串地址。址目的串地址。址目的串地址。u通通通通过过段超越前段超越前段超越前段超越前缀缀可以可以可以可以对对某些某些某些某些隐隐含含含含规则进规则进行修改。行修改。行修改。行修改。第第第第22章章章章 8086 CPU8086 CPU中国科学技术大学2.3 80862.3 8086存储器存储器3.堆栈的设置和操作堆栈的设置和操作u什么是堆栈?什么是堆栈?什么是堆栈?什么是堆栈?l堆栈是在内存中开辟的一个特定数据区域堆栈是在内存中开辟的一个特定数据区域堆栈是在内存中开辟的一个特定数据区域堆栈是在内存中开辟的一个特
15、定数据区域l堆栈存放需暂时保存的数据,如调用子程序时的堆栈存放需暂时保存的数据,如调用子程序时的堆栈存放需暂时保存的数据,如调用子程序时的堆栈存放需暂时保存的数据,如调用子程序时的返回地址、中断处理时的断点及现场信息等。返回地址、中断处理时的断点及现场信息等。返回地址、中断处理时的断点及现场信息等。返回地址、中断处理时的断点及现场信息等。u如何设置堆栈?如何设置堆栈?如何设置堆栈?如何设置堆栈?l堆栈位置和长度由堆栈位置和长度由堆栈位置和长度由堆栈位置和长度由SSSS:SPSP来设定来设定来设定来设定l可设置的堆栈最大容量为可设置的堆栈最大容量为可设置的堆栈最大容量为可设置的堆栈最大容量为64
16、KB64KB第第第第22章章章章 8086 CPU8086 CPU中国科学技术大学2.3 80862.3 8086存储器存储器uu堆栈设置和操作举例堆栈设置和操作举例堆栈设置和操作举例堆栈设置和操作举例a a)设设置堆置堆置堆置堆栈栈 令令令令SS=2000HSS=2000H,SP=1300HSP=1300H。堆栈范围为。堆栈范围为。堆栈范围为。堆栈范围为2000:0000H 2000:0000H 2000:2000:(1300H-11300H-1),即即即即20000H 20000H 212FFH212FFH。SS=SS=堆栈的段基址堆栈的段基址堆栈的段基址堆栈的段基址2000H2000H,
17、SP=SP=栈顶地址,见图栈顶地址,见图栈顶地址,见图栈顶地址,见图(a)(a)第第第第22章章章章 8086 CPU8086 CPU中国科学技术大学2.3 80862.3 8086存储器存储器l用用用用PUSH/POPPUSH/POP指指指指令令令令进进行行行行堆堆堆堆栈栈操操操操作作作作,遵遵遵遵循循循循先先先先进进后后后后出出出出的原的原的原的原则则。b b)PUSHPUSH操作将操作将操作将操作将1 1个字压入栈,并使个字压入栈,并使个字压入栈,并使个字压入栈,并使SPSPSP-2SP-2 设设设设AX=1234HAX=1234H,BX=5678HBX=5678H 执行执行执行执行PU
18、SH AXPUSH AX,PUSH BXPUSH BX指令指令指令指令 4 4字节先后压入堆栈,并使字节先后压入堆栈,并使字节先后压入堆栈,并使字节先后压入堆栈,并使SP=12FCHSP=12FCH,如图,如图,如图,如图(b)(b)。c c)执行执行执行执行POP DXPOP DX指令指令指令指令 从从从从 栈栈栈栈 里里里里 取取取取 出出出出 2 2字字字字 节节节节,送送送送 入入入入 DXDX,DX=5678HDX=5678H,SP=SP=12FEH12FEH,如图,如图,如图,如图(c)c)。l通通通通过过BPBP指指指指针针也也也也可可可可从从从从堆堆堆堆栈栈中中中中获获取取取取
19、数数数数据据据据,或或或或向向向向堆堆堆堆栈栈存存存存入数据。入数据。入数据。入数据。第第第第22章章章章 8086 CPU8086 CPU中国科学技术大学2.3 80862.3 8086存储器存储器4.段加偏移量寻址机制允许重定位段加偏移量寻址机制允许重定位l可重定位程序可重定位程序可重定位程序可重定位程序,是指一个可以存放在存储器的任,是指一个可以存放在存储器的任,是指一个可以存放在存储器的任,是指一个可以存放在存储器的任何区域,不加修改就可以执行的程序。何区域,不加修改就可以执行的程序。何区域,不加修改就可以执行的程序。何区域,不加修改就可以执行的程序。l可重定位数据可重定位数据可重定位
20、数据可重定位数据,是指可以存放在存储器的任何区,是指可以存放在存储器的任何区,是指可以存放在存储器的任何区,是指可以存放在存储器的任何区域,不用修改就可以被程序引用的数据。域,不用修改就可以被程序引用的数据。域,不用修改就可以被程序引用的数据。域,不用修改就可以被程序引用的数据。l由于存储器由于存储器由于存储器由于存储器采用偏移地址在段内寻址采用偏移地址在段内寻址采用偏移地址在段内寻址采用偏移地址在段内寻址,因此一个,因此一个,因此一个,因此一个程序段或数据块,在内存中搬移时,可以程序段或数据块,在内存中搬移时,可以程序段或数据块,在内存中搬移时,可以程序段或数据块,在内存中搬移时,可以保持其
21、保持其保持其保持其偏移地址不变,只改变段寄存器的内容偏移地址不变,只改变段寄存器的内容偏移地址不变,只改变段寄存器的内容偏移地址不变,只改变段寄存器的内容,因此搬,因此搬,因此搬,因此搬到哪里都只要修改段寄存器内容后就可以执行,到哪里都只要修改段寄存器内容后就可以执行,到哪里都只要修改段寄存器内容后就可以执行,到哪里都只要修改段寄存器内容后就可以执行,即它们具有了重定位的特点。即它们具有了重定位的特点。即它们具有了重定位的特点。即它们具有了重定位的特点。第第第第22章章章章 8086 CPU8086 CPU中国科学技术大学2.3 80862.3 8086存储器存储器2.3.1 段地址和偏移地址
22、段地址和偏移地址2.3.2 8086存存储器的分体器的分体结构构第第第第22章章章章 8086 CPU8086 CPU中国科学技术大学2.3 80862.3 8086存储器存储器2.3.2 8086存存储器的分体器的分体结构构1.8086的奇偶存储体的奇偶存储体l1MB1MB存存存存储储储储空空空空间间间间分分分分成成成成两两两两个个个个8 8位位位位的的的的存存存存储储储储体体体体:偶偶偶偶地地地地址址址址体体体体和和和和奇奇奇奇地地地地址址址址体体体体,各占各占各占各占512K512K字节。字节。字节。字节。l偶偶偶偶地地地地址址址址体体体体包包包包含含含含所所所所有有有有地地地地址址址址
23、偶偶偶偶数数数数的的的的存存存存储储储储单单单单元元元元,奇奇奇奇地地地地址址址址体体体体包包包包含含含含所所所所有有有有地地地地址奇数的存储单元。址奇数的存储单元。址奇数的存储单元。址奇数的存储单元。结结构如构如构如构如图图第第第第22章章章章 8086 CPU8086 CPU中国科学技术大学2.3 80862.3 8086存储器存储器l l用用用用8086 CPU8086 CPU的的的的 引脚信号和地址线引脚信号和地址线引脚信号和地址线引脚信号和地址线A A0 0来选择一个或两个来选择一个或两个来选择一个或两个来选择一个或两个存储体进行数据传送,组合功能如表存储体进行数据传送,组合功能如表
24、存储体进行数据传送,组合功能如表存储体进行数据传送,组合功能如表2.42.4。A A0 0=0=0访访问问偶偶偶偶地地地地址址址址体体体体,偶偶偶偶体体体体数数数数据据据据线线与与与与数数数数据据据据总总线线低低低低8 8位位位位D D7 7DD0 0连连,传传送低送低送低送低8 8位数据;位数据;位数据;位数据;=0=0访访奇奇奇奇地地地地址址址址体体体体,奇奇奇奇体体体体数数数数据据据据线线与与与与数数数数据据据据总总线线高高高高8 8位位位位D D1515DD8 8连连,传传送高送高送高送高8 8位数据;位数据;位数据;位数据;和和和和A A0 0都都都都为为0 0,同,同,同,同时选时
25、选中两个存中两个存中两个存中两个存储储体,可体,可体,可体,可传传送送送送1616位数据。位数据。位数据。位数据。第第第第22章章章章 8086 CPU8086 CPU中国科学技术大学2.3 80862.3 8086存储器存储器2.8086 CPU对存储器的存取操作对存储器的存取操作l存取都从偶体开始。从偶地址单元开始存取一个字存取都从偶体开始。从偶地址单元开始存取一个字存取都从偶体开始。从偶地址单元开始存取一个字存取都从偶体开始。从偶地址单元开始存取一个字只要只要只要只要1 1次操作,从奇地址开始要次操作,从奇地址开始要次操作,从奇地址开始要次操作,从奇地址开始要2 2次操作。次操作。次操作
26、次操作。从从从从偶偶偶偶地地地地址址址址1000H1000H开开开开始始始始,一一一一次次次次操操操操作作作作就就就就可可可可读读取字数据取字数据取字数据取字数据5D7FH5D7FH。若若若若要要要要读读取取取取奇奇奇奇地地地地址址址址1001H1001H开开开开始始始始的的的的1 1个个个个字字字字345DH345DH,要要要要先先先先从从从从1000H1000H开开开开始始始始读读1 1个个个个字字字字5D7FH5D7FH,取取取取5DH5DH为为结结果果果果低低低低字字字字节节,舍舍舍舍弃弃弃弃7FH,7FH,再再再再从从从从1002H1002H单单元元元元读读取取取取1234H123
27、4H,取取取取34H34H作作作作结结果高字果高字果高字果高字节节,舍弃,舍弃,舍弃,舍弃12H12H。l因此,存放字数据时,应放在偶地址开始单元中。因此,存放字数据时,应放在偶地址开始单元中。因此,存放字数据时,应放在偶地址开始单元中。因此,存放字数据时,应放在偶地址开始单元中。对准伪指令对准伪指令对准伪指令对准伪指令EVENEVEN能自动完成这种操作。能自动完成这种操作。能自动完成这种操作。能自动完成这种操作。第第第第22章章章章 8086 CPU8086 CPU中国科学技术大学2.3 80862.3 8086存储器存储器3.8088 CPU对存储器的存取操作对存储器的存取操作l8088
28、8088 的的的的外外外外部部部部数数数数据据据据总总总总线线线线为为为为8 8位位位位,它它它它每每每每次次次次访访访访问问问问存存存存储储储储器只读器只读器只读器只读/写写写写1 1个字节,读个字节,读个字节,读个字节,读/写写写写1 1个字要分个字要分个字要分个字要分2 2次完成。次完成。次完成。次完成。l1MB1MB存存存存储储储储器器器器被被被被看看看看作作作作一一一一个个个个存存存存储储储储体体体体,由由由由A A1919AA0 0直直直直接接接接寻址,系统运行速度要慢些。寻址,系统运行速度要慢些。寻址,系统运行速度要慢些。寻址,系统运行速度要慢些。第第第第22章章章章 8086
29、CPU8086 CPU中国科学技术大学2.3 80862.3 8086存储器存储器4.8086/8088系统中存储器与总线的连接系统中存储器与总线的连接l l连线如图连线如图连线如图连线如图2.92.9,左侧的系统总线是连到,左侧的系统总线是连到,左侧的系统总线是连到,左侧的系统总线是连到CPUCPU的总线信号。的总线信号。的总线信号。的总线信号。第第第第22章章章章 8086 CPU8086 CPU中国科学技术大学2.3 80862.3 8086存储器存储器4.8086/8088系统中存储器与总线的连接系统中存储器与总线的连接图图图图a)a)是是是是80868086系统存储器,分奇系统存储器
30、分奇系统存储器,分奇系统存储器,分奇/偶地址体。偶地址体。偶地址体。偶地址体。选选择择信信信信号号号号 与与与与 和和和和A A0 0相相相相连连,选选中中中中1 1个个个个存存存存储储体体体体或或或或两两两两个都个都个都个都选选中。中。中。中。奇奇奇奇/偶偶偶偶地地地地址址址址体体体体的的的的8 8位位位位数数数数据据据据线线,分分分分别别与与与与数数数数据据据据总总线线的的的的高高高高/低低低低8 8位相位相位相位相连连,传传送高送高送高送高/低低低低8 8位数据。位数据。位数据。位数据。1919根根根根地地地地址址址址线线A A1818A A0 0与与与与地地地地址址址址总总线线的的的的A A1919A A1 1相相相相连连,用用用用来来来来选择选择存存存存储储体内体内体内体内512KB512KB单单元中的某一个元中的某一个元中的某一个元中的某一个单单元。元。元。元。图图图图b)b)是是是是80888088系统的系统的系统的系统的1MB1MB存储体。存储体。存储体。存储体。8 8位位位位数数数数据据据据线线直直直直接接接接与与与与低低低低8 8位位位位数数数数据据据据总总线线相相相相连连,2020位位位位地地地地址址址址线线直直直直接与接与接与接与2020根地址根地址根地址根地址总线总线相相相相连连。






