《第2章 实模式下存储器组织与寻址方式(徐建民).ppt》由会员分享,可在线阅读,更多相关《第2章 实模式下存储器组织与寻址方式(徐建民).ppt(31页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、本章内容本章内容:实模式下存储器的组织方式;实模式下存储器的组织方式;实模式下存储器的寻址方式。实模式下存储器的寻址方式。第二章第二章 微处理器的结构及存储器组织微处理器的结构及存储器组织 汇编语言程序设计汇编语言程序设计 第第2章章 微处理器的结构及存储器组织微处理器的结构及存储器组织第第2 2页页第第2页页本章要求本章要求教学重点及难点教学重点及难点:寄存器组织,存储器地址寄存器组织,存储器地址1.了解微处理器的结构,掌握80X86处理器寄存器结构;2.理解存储器地址和内容的概念;3.熟悉实模式下存储器地址的组成方式;计划学时计划学时:4学时学时 汇编语言程序设计汇编语言程序设计 第第2章
2、章 微处理器的结构及存储器组织微处理器的结构及存储器组织第第3 3页页第第3页页2.1 微处理器的结构微处理器的结构 计算机通常由几部分组成:计算机通常由几部分组成:控制器、运算器、存储器、输入设备和输控制器、运算器、存储器、输入设备和输出设备出设备。其中把控制器和运算器两部分集成在一个芯片上,称为微处理器,。其中把控制器和运算器两部分集成在一个芯片上,称为微处理器,即中央处理器即中央处理器CPU(Central Processing Unit)。计算结果计算结果程序和数据程序和数据控制流控制流CS数据流数据流DSCPU 汇编语言程序设计汇编语言程序设计 第第2章章 微处理器的结构及存储器组织
3、微处理器的结构及存储器组织第第4 4页页第第4页页内部暂存器内部暂存器 IP ES SS DS CS输入输入/输出输出控制电路控制电路外外部部总总线线执行部分执行部分控制电路控制电路1 2 3 4 5 6ALU标志寄存器标志寄存器 AH AL BH BLCH CL DH DL SP BP SI DI通用寄存器通用寄存器地址加法器地址加法器指令队列缓冲器指令队列缓冲器执行部件执行部件(EU)总线接口部件总线接口部件(BIU)16位位20位位16位位8位位8086CPU8086CPU结构示意图结构示意图8个16位寄存器分别为AX、BX、CX、DX、SP、BP、SI和DI,标志寄存器为FLAGS。总
4、线接口部件功能:预取指令和数据,总线 操作,信息传递。组成:指令队列、指令指针寄存器、地址加法器指令执行部件功能:控制和执行指令组成:算术逻辑运算部件ALU、EU单元控 制系统、寄存器第第5页页第一章第一章 计算机系统概论计算机系统概论Pentium CPU第第6页页第一章第一章 计算机系统概论计算机系统概论Pentium IV CPU 汇编语言程序设计汇编语言程序设计 第第2章章 微处理器的结构及存储器组织微处理器的结构及存储器组织第第7 7页页第第7页页2.1.2 80 x862.1.2 80 x86和和PentiumPentium微处理机的寄存器结构微处理机的寄存器结构8086CPU寄寄
5、存存器器结结构构通用寄存器通用寄存器控制寄存器控制寄存器段寄存器段寄存器数据寄存器数据寄存器指针寄存器指针寄存器变址寄存器变址寄存器AHALBHBLCHCLDHDLAXBXCXDXSP堆栈指针寄存器 BP基址指针寄存器 SI源地址变址寄存器 DI目标地址变址寄存器 IP指令指针寄存器 FLAGS标志寄存器 CS代码段段寄存器 DS数据段段寄存器 ES附加段段寄存器 SS堆栈段段寄存器 数据寄存器用来保存数据寄存器用来保存操作数或运算结果等操作数或运算结果等累加器。用于算术、逻辑运算累加器。用于算术、逻辑运算以及与外设传送信息等。以及与外设传送信息等。基址寄存器基址寄存器,常于存放存储器常于存放
6、存储器地址地址计数器计数器,作为循环或串操作作为循环或串操作等指令中的隐含计数器。等指令中的隐含计数器。数据寄存器数据寄存器,用来存放双字数据的用来存放双字数据的高高1616位,或存放外设端口地址位,或存放外设端口地址SPSP用于存放当前堆栈段中栈顶用于存放当前堆栈段中栈顶的偏移地址;的偏移地址;BPBP用于存放堆栈用于存放堆栈段中某一存储单元的偏移地址。段中某一存储单元的偏移地址。变址和指针寄存器用于存放某个存储单元的偏移地址在字符串操作中,在字符串操作中,SISI和和DIDI都具有自动增量或减量的都具有自动增量或减量的功能。功能。保保存存下下一一次次将将要要取取出出指指令令的的偏偏移移地地
7、址址,IPIP的的内内容容由由微微处处理理器器硬硬件件自自动动设设置置,有有一一些些指指令令可可改改变变IPIP的的值值,如如转转移移指指令令、子子程序调用指令等。程序调用指令等。8086CPU8086CPU的个的个1616位的段寄存器位的段寄存器:CS:CS,DSDS,SSSS,ESES。8038680386以后以后增添了增添了FSFS和和GSGS。段寄存器用来。段寄存器用来确定该段在内存中的起始地址。确定该段在内存中的起始地址。汇编语言程序设计汇编语言程序设计 第第2章章 微处理器的结构及存储器组织微处理器的结构及存储器组织第第8 8页页第第8页页8038680386及后继机型的通用寄存器
8、及后继机型的通用寄存器 AH AX AL AH AX AL BH BX BL BH BX BL CH CX CL CH CX CL DH DX DL DH DX DL SP SP BP BP SI SI DI DI IP IP FLAGS FLAGS CS CS DS DS SS SS ES ES8086/8086/8088/8088/8028680286 寄寄 存存 器器EAXEAXEBXEBXECXECXEDXEDXESPESPEBPEBPESIESIEDIEDIEIPEIP EFLAGS EFLAGS FSFSGSGS 31 16 15 8 7 0 汇编语言程序设计汇编语言程序设计 第第
9、2章章 微处理器的结构及存储器组织微处理器的结构及存储器组织第第9 9页页第第9页页1616、3232、6464位机型的通用寄存器位机型的通用寄存器以累加器为例以累加器为例AHALAX:16AX:16位位EAX:32EAX:32位位RAX:64RAX:64位位000631531AHALAHAL 汇编语言程序设计汇编语言程序设计 第第2章章 微处理器的结构及存储器组织微处理器的结构及存储器组织第第1010页页第第10页页 PSW(Program Status Word)为为程程序序状状态态字字寄寄存存器器,这这是是一一个个16位位寄寄存存器器。也也称称为为标标志志寄寄存存器器。用用来来反反映映微
10、微处处理理器器在在程程序序运运行行时时的的某某些些状状态态。PSW寄寄存存器器中中有有9个个标标志志位位,其其中中6个个标标志志位位(OF,SF,ZF,AF,PF,CF)作作为为状状态态标标志志,记记载载了了刚刚刚刚执执行行完完算算术术或或逻逻辑辑运算指令后的某些特征。运算指令后的某些特征。另另外外三三个个标标志志位位为为DF、IF、TF作作为为控控制制标标志志,完完全全由由编编程程者者设设定定,在执行某些指令时起控制作用。在执行某些指令时起控制作用。程序状态字寄存器程序状态字寄存器FLAGS(PSW)80868086的标志寄存器的标志寄存器CFPFAFZFSFTFIFDFOFD15D0D7
11、汇编语言程序设计汇编语言程序设计 第第2章章 微处理器的结构及存储器组织微处理器的结构及存储器组织第第1111页页第第11页页OFDFIFTFSFZFAFPFCF功能功能:存放条件码标志、控制标志和系统标志。存放条件码标志、控制标志和系统标志。80868086的标志寄存器的标志寄存器8028680286的标志寄存器的标志寄存器CFPFAFZFSFTFIFDFOFNTIOPLFLAGSFLAGS标志寄存器(标志寄存器(PSWPSW)汇编语言程序设计汇编语言程序设计 第第2章章 微处理器的结构及存储器组织微处理器的结构及存储器组织第第1212页页第第12页页8038680386及后继机型及后继机型
12、:有有3 3个个3232位的专用寄存器,位的专用寄存器,EIPEIP、ESPESP和和EFLAGSEFLAGS。RFRF OFOF DFDF IFIF TFTF SFSF ZFZF AFAF PFPF CFCF IOPLIOPLNTNTVMVM 80386 RFRF OFOF DFDF IFIF TFTF SFSF ZFZF AFAF PFPF CFCF IOPLIOPLNTNTVMVMACAC 80486 RFRF OFOF DFDF IFIF TFTF SFSF ZFZF AFAF PFPF CFCF IOPLIOPLNTNTVMVMACACIDID VIPVIPVIFVIF31 30 2
13、9 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 031 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0PentiumIOPL:I/O特权级特权级 VIP:虚拟中断未决标志:虚拟中断未决标志 NT:嵌套任务标志嵌套任务标志 VIF:虚拟中断标志:虚拟中断标志 RF:重新启动标志重新启动标志 VM:虚拟:虚拟8086模式位模式位 AC:对准检查方式位对准检查方式位 ID:标识标
14、志标识标志 汇编语言程序设计汇编语言程序设计 第第2章章 微处理器的结构及存储器组织微处理器的结构及存储器组织第第1313页页第第13页页OF(Overflow Flag)溢出标志)溢出标志,在运算过程中,如操作数超出了机器所,在运算过程中,如操作数超出了机器所能表示的范围,则称为溢出。此时能表示的范围,则称为溢出。此时OFOF位置位置“1”“1”,否则置,否则置“0”“0”。SF(Sign Flag)符号标志)符号标志,记录运算结果的符号,结果为负时置,记录运算结果的符号,结果为负时置“1”“1”,否则置,否则置“0”“0”。ZF(Zero Flag)零标志)零标志,运算结果为,运算结果为0
15、 0时时ZFZF位置位置“1”“1”,否则置,否则置“0”“0”。AF(Auxiliary carry Flag)辅助进位标志辅助进位标志,记录运算时第,记录运算时第3 3位位(半个字节半个字节)产产生的进位值。例如,执行加法指令时第生的进位值。例如,执行加法指令时第3 3位有进位时置位有进位时置l l,否则置,否则置0 0。该标该标志与操作数长度无关。志与操作数长度无关。状态标志状态标志PF:(:(Parity Flag)奇偶标志)奇偶标志,若操作结果的低,若操作结果的低8位中含位中含1的个数为的个数为偶数时,则偶数时,则PF置置1,否则,否则PF置成置成0。注意:。注意:PF只检查操作结果
16、的只检查操作结果的低低8位,与该指令操作数的长度无关。位,与该指令操作数的长度无关。CF:(:(Carry Flag)进位标志)进位标志,当进行算术运算时,如果最高位产生进位,当进行算术运算时,如果最高位产生进位(加法)或借位(减法),则(加法)或借位(减法),则CF置置1,否则置,否则置0。CF也可在移位也可在移位类指令中使用,用它保存从最高位(左移时)或最低位(右移时)移出的类指令中使用,用它保存从最高位(左移时)或最低位(右移时)移出的代码(代码(0或或1)。)。汇编语言程序设计汇编语言程序设计 第第2章章 微处理器的结构及存储器组织微处理器的结构及存储器组织第第1414页页第第14页页
17、标标 志志 名名标志为标志为1 1标志为标志为0 0OF OF 溢出(是溢出(是/否)否)OVOVNVNVDF DF 方向(减量方向(减量/增量)增量)DNDNUPUPIF IF 中断(允许中断(允许/关闭)关闭)EIEIDIDI SF SF 符号(负符号(负/正)正)NGNGPLPL ZF ZF 零(是零(是/否)否)ZrZrNZNZ AF AF 辅助进位(是辅助进位(是/否)否)ACACNZNZ PF PF 奇偶(偶奇偶(偶/奇)奇)PEPEPOPO CF CF 进位(是进位(是/否)否)CYCYNCNC标志位的符号表示(标志位的符号表示(DEBUG)汇编语言程序设计汇编语言程序设计 第第
18、2章章 微处理器的结构及存储器组织微处理器的结构及存储器组织第第1515页页第第15页页2.2 实模式下的存储器组织实模式下的存储器组织 实模式实模式:全称为实地址存储管理操作模式,程序与数据运全称为实地址存储管理操作模式,程序与数据运行行 在实际存储空间,无存储保护。在实际存储空间,无存储保护。实模式来源实模式来源:来源于来源于8086微处理器。微处理器。实模式存储管理方式实模式存储管理方式:分段方式分段方式。注意注意:80286Pentium尽管寻址空间比尽管寻址空间比8086/8088大,但为了大,但为了兼容,实模式存储空间仍为兼容,实模式存储空间仍为1MB,采用同样分段方式管理。,采用
19、同样分段方式管理。汇编语言程序设计汇编语言程序设计 第第2章章 微处理器的结构及存储器组织微处理器的结构及存储器组织第第1616页页第第16页页例如例如:地址1234H 其中大写H(或小写h)表示是16进制数。2.2.1 存储单元的地址和内容存储单元的地址和内容1.存储单元的地址存储单元的地址 定义:将存储单元编号,这个编号就是存储器地址。表示:用十六进制数来表达地址。在存储器中,每一个字节单元都有一个与之对应的、唯一的存储器地址,称为物理地址物理地址。对于16位字长的PC机(8086),由两个字节组成一个字(Word)。其位编号如下:0123456789101112131415高位字节高位字
20、节低位字节低位字节每一个每一个字节单元字节单元都有一个与之对应的单元地址都有一个与之对应的单元地址 。对于对于多字节单元多字节单元(字,双字,(字,双字,4 4字等),其地址同样是采用字等),其地址同样是采用最低最低最低最低位字节地址位字节地址位字节地址位字节地址来表示的。来表示的。汇编语言程序设计汇编语言程序设计 第第2章章 微处理器的结构及存储器组织微处理器的结构及存储器组织第第1717页页第第17页页2.2.存储单元的内容存储单元的内容 定义:存储单元中存放的信息称为该存储单元的内容 表示:存储地址加”()”如果用X表示某存储单元的地址,则X单元的内容可以表示为(X)(X);假如X单元中
21、存放着Y,而Y又是一个地址,则可用(Y)=(X)(Y)=(X)来表示Y单元的内容。34H12H1EH2FH字节字节0000H0001H0002H0003H0004H0005H0006H1234H1235H0004H0004H字节单元字节单元的内容:的内容:(0004H0004H)=34H=34H0004H0004H字单元字单元的内容:的内容:(0004H0004H)=1234H=1234H0004H字单元的内容为1234H,表示为:(0004H)=1234H(0004H)=1234H 0004H字节单元存放的信息为34H,表示:(0004H)=34H 字单元由两个字节单元组成,其地址采用它的低
22、地址来表示。字存入存储器:低位字节存入低地址单元,高位字低位字节存入低地址单元,高位字节存入高地址单元。节存入高地址单元。汇编语言程序设计汇编语言程序设计 第第2章章 微处理器的结构及存储器组织微处理器的结构及存储器组织第第1818页页第第18页页 假如X单元中存放着Y,而Y又是一个地址,则可用(Y)=(X)(Y)=(X)来表示Y单元的内容。34H12H1EH2FH字节字节0000H0001H0002H0003H0004H0005H0006H1234H1235H直接表示直接表示1234H1234H字单元字单元的内容:的内容:S=(1234H)=2F1EH直接给出S的单元地址,(1234H)=2
23、F1EH(1234H)=2F1EH 例如,例如,1234H字单元字单元的内容为的内容为S,有两种表示方式:,有两种表示方式:间接表示间接表示1234H1234H字单元字单元的内容:的内容:S=(0004H)=(1234H)=2F1EHS S的单元地址的单元地址存放在0004H字单元中,(0004H)=1234H(0004H)=1234H从0004H字单元中取出S S的单元地址的单元地址,再把S的内容读出来:((0004H)(0004H))=2F1EH=2F1EH 汇编语言程序设计汇编语言程序设计 第第2章章 微处理器的结构及存储器组织微处理器的结构及存储器组织第第1919页页第第19页页【例】
24、【例】某存储器如图所示,试读出对应某存储器如图所示,试读出对应单元的内容。单元的内容。80H50HA0H10H59H74H字节字节4000H4001H4002H4003H4004H4005H4006H5080H5081H(1)字节单元()字节单元(4002H););(2)字单元()字单元(4002H););(3)双字单元()双字单元(4002H););(4)读出字单元()读出字单元(5080H)有几种方式?)有几种方式?【解】【解】(1)字节单元()字节单元(4002H)=80H;(2)字单元()字单元(4002H)=5080H;(3)双字单元()双字单元(4002H)=10A05080H;(
25、4)字单元()字单元(5080H)=7459H (4002H)=7459H 汇编语言程序设计汇编语言程序设计 第第2章章 微处理器的结构及存储器组织微处理器的结构及存储器组织第第2020页页第第20页页2.1.2 2.1.2 存储器地址的分段存储器地址的分段1.分段的原因及如何分段分段的原因及如何分段 原因:原因:8086/8088 CPU 有有20根地址总线根地址总线A19A18A1A0,可以访问存,可以访问存储器的最大容量为:储器的最大容量为:220B=1024KB=1MB。在在8086 CPU 中所有可用来存放地址的寄存器都是中所有可用来存放地址的寄存器都是16位的。那么在位的。那么在1
26、6位字长的机器里,用什么办法来提供位字长的机器里,用什么办法来提供20位地址呢?位地址呢?解决方法:解决方法:在在IBM PC机里采用了机里采用了存储器地址分段存储器地址分段的办法。把的办法。把1MB的存储空间划的存储空间划分成若干个段(分成若干个段(Segment),每个段可由每个段可由164KB(即(即65536B)个连续的)个连续的字节单元组成。每个段是一个可独立寻址的逻辑单位。字节单元组成。每个段是一个可独立寻址的逻辑单位。在程序设计中,需要设立几个段,每个段有多少个字节以及每个段的在程序设计中,需要设立几个段,每个段有多少个字节以及每个段的用途完全由用户自己确定。同时每个段中存储的代
27、码或数据,可以存放在用途完全由用户自己确定。同时每个段中存储的代码或数据,可以存放在段内任意单元中。段内任意单元中。汇编语言程序设计汇编语言程序设计 第第2章章 微处理器的结构及存储器组织微处理器的结构及存储器组织第第2121页页第第21页页分段的基本规则分段的基本规则 在编制程序时,要把存储器划分成段,每个段最大可达最大可达最大可达最大可达64KB64KB64KB64KB,这样段内地址可以用16位表示。PCPC机对机对段的起始地址有限制,段不能起始于任意地址段的起始地址有限制,段不能起始于任意地址段的起始地址有限制,段不能起始于任意地址段的起始地址有限制,段不能起始于任意地址,而必须从任,而
28、必须从任一小段(一小段(ParagraphParagraph)的首地址开始。)的首地址开始。机器规定机器规定:从:从0 0地址开始,每地址开始,每1616个字节为一小段。个字节为一小段。00000,00001,00002,0000E,0000F;00010,00011,00012,0001E,0001F;00020,00021,00022,0002E,0002F;在十六进制表示的地址中,在十六进制表示的地址中,最低位为最低位为0 0(即(即2020位地址的低位地址的低4 4位为位为0 0)。)。汇编语言程序设计汇编语言程序设计 第第2章章 微处理器的结构及存储器组织微处理器的结构及存储器组织第
29、第2222页页第第22页页2.2.段地址和偏移地址段地址和偏移地址 段地址段地址:表示一个段的开始 偏移地址偏移地址:在段内相对于段起始地址的偏移值。如当偏移量为0时,就在这个段的起始单元,当偏移量为0FFFFH时,就是这个段(最大)最末一个字节单元。CPU访问主存必须传送出物理地址,而用户编程则使用逻辑地址,每个存储单元都有两种形式的地址:物理地址(物理地址(Phsysical Address)和逻辑地址(和逻辑地址(Logical Address)。每一个存储单元的物理地址是唯一的,就是这个单元的地址编码。在程序设计中,程序员使用的是逻辑地址,而不使用物理地址程序员使用的是逻辑地址,而不使
30、用物理地址,这不仅有利于程序的开发,且对存储器的动态管理也是有利的。一个逻辑地址是由段地址和偏移地址段地址和偏移地址(OFFSET)两部分组成,而且都是无符号的16位二进制数。汇编语言程序设计汇编语言程序设计 第第2章章 微处理器的结构及存储器组织微处理器的结构及存储器组织第第2323页页第第23页页3.物理地址的形成物理地址的形成计算公式:计算公式:物理地址物理地址=段地址段地址10H+10H+偏移地址偏移地址 每个存储单元只有唯一的物理地址,但它却可以由不同每个存储单元只有唯一的物理地址,但它却可以由不同的段地址和不同的偏移地址组成。的段地址和不同的偏移地址组成。1616位段地址位段地址1
31、501616位偏移地址位偏移地址150+2020位物理地址位物理地址190表示范围:表示范围:00000HFFFFFH。汇编语言程序设计汇编语言程序设计 第第2章章 微处理器的结构及存储器组织微处理器的结构及存储器组织第第2424页页第第24页页【例】【例】:计算下列存储单元的物理地址:计算下列存储单元的物理地址:(1)2000:3000;(2)2100:2000;(3)2280:0800;(4)2250:0500;【解】【解】:(1)物理地址物理地址=2000H10H+3000H=23000H;(2)物理地址物理地址=2100H10H+2000H=23000H;(3)物理地址物理地址=228
32、0H10H+0800H=23000H;(4)物理地址物理地址=2250H10H+0500H=22A00H;汇编语言程序设计汇编语言程序设计 第第2章章 微处理器的结构及存储器组织微处理器的结构及存储器组织第第2525页页第第25页页 除非专门指定,如用户自行设定之外,在一般情况下,各段在存储器中的分配是由操作系统负责的。每个段可以独立地占用每个段可以独立地占用64KB存储区。各段也允许部分存储区。各段也允许部分重叠或完全重叠重叠或完全重叠。4.段地址与段寄存器段地址与段寄存器 实模式下,在8086Pentium微处理机中,代码段的段地址放在CS中;数据段的段地址放在DS中;堆栈段的段地址存放在
33、SS中;附加段的段地址存放在ES中。汇编语言程序设计汇编语言程序设计 第第2章章 微处理器的结构及存储器组织微处理器的结构及存储器组织第第2626页页第第26页页段分配举例段分配举例。设设代码段中的程序占有16KB(4000H)存储区,数据段占有2KB(800H)存储区,堆栈段占有1KB存储区。代码段的区域本可以为01000H10FFFH(64KB),由于程序区只需要16KB,所以程序区结束后的第一个小段的首地址就作为数据段的起始地址(05000H)。而数据段仅需2KB,则数据段结束后的第一个小段的首地址又成为堆栈段的起始地址(05800H)。这样,代码段和数据段及堆栈段重叠在一起了。代码段代
34、码段物理地址物理地址01000H10FFFH代码段实际使用代码段实际使用16KB04FFFH数据段数据段05000H057FFH数据段实际使用数据段实际使用2KB堆栈段堆栈段05800H 汇编语言程序设计汇编语言程序设计 第第2章章 微处理器的结构及存储器组织微处理器的结构及存储器组织第第2727页页第第27页页【例例】:已已知知(CS)=1000H(CS)=1000H,(DS)=4000H(DS)=4000H,其其中中代代码码段段大大小小为为1KB1KB,数数据据段段大小为大小为64KB64KB,试画出对应储存器分段的示意图,要求标出首尾地址。,试画出对应储存器分段的示意图,要求标出首尾地址
35、。【分析】【分析】:对对于于代代码码段段,由由题题意意,大大小小为为1KB1KB,即即对对应应的的偏偏移移地地址址为为:0H-3FFH0H-3FFH,且且CSCS为为1000H1000H,则则对应的物理地址为:对应的物理地址为:10000H-103FFH10000H-103FFH 对对于于数数据据段段,由由题题意意,大大小小为为64KB64KB,即即对对应应的的偏偏移移地地址址为为:0H-FFFFH0H-FFFFH,且且 DSDS为为4000H4000H,则对应的物理地址为:,则对应的物理地址为:40000H-4FFFFH40000H-4FFFFH1000HCS4000HDSSSES代码段代码
36、段数据段数据段10000H103FFH40000H4FFFFH4000:00004000:FFFF 汇编语言程序设计汇编语言程序设计 第第2章章 微处理器的结构及存储器组织微处理器的结构及存储器组织第第2828页页第第28页页【例】【例】:已知:已知CPUCPU各段寄存器的内容为:各段寄存器的内容为:(CS)=3000H(CS)=3000H,(DS)=1060H(DS)=1060H,(ES)=1140H(ES)=1140H,(SS)=2200H(SS)=2200H,SP=0200HSP=0200H其其中中代代码码段段大大小小为为16KB16KB,数数据据段段、附附加加段段大大小小为为64KB6
37、4KB,试试画画出出对对应应储储存存器器分段的示意图,要求标出首尾地址。分段的示意图,要求标出首尾地址。【分析】【分析】:对对于于代代码码段段,大大小小为为16KB16KB,即即对对应应的的偏偏移移地地址址为为:0H-3FFFH0H-3FFFH,且且CSCS为为3000H3000H,则对应的物理地址为:,则对应的物理地址为:30000H-33FFFH30000H-33FFFH 对对于于数数据据段段,大大小小为为64KB64KB,即即对对应应的的偏偏移移地地址址为为:0H-FFFFH0H-FFFFH,且且DSDS为为1060H1060H,则对应的物理地址为:,则对应的物理地址为:10600H-2
38、05FFH10600H-205FFH 对对于于附附加加段段,大大小小为为64KB64KB,即即对对应应的的偏偏移移地地址址为为:0H-FFFFH0H-FFFFH,且且ESES为为1140H1140H,则对应的物理地址为:,则对应的物理地址为:11400H-213FFH11400H-213FFH 附加段与数据段重叠,重叠区域从附加段与数据段重叠,重叠区域从11400H11400H205FFH205FFH。对对于于堆堆栈栈段段,SP=200H,SP=200H,即即对对应应的的偏偏移移地地址址为为:0H-0200H0H-0200H,且且SSSS为为2200H2200H,则对应的物理地址为:,则对应的
39、物理地址为:22000H-22200H22000H-22200H 汇编语言程序设计汇编语言程序设计 第第2章章 微处理器的结构及存储器组织微处理器的结构及存储器组织第第2929页页第第29页页储存器分段示意图储存器分段示意图3000HCS1060HDS2200HSS1140HES数据段数据段10600H205FFH附加段附加段11400H213FFH数据段和附加段数据段和附加段重叠区域重叠区域堆栈段堆栈段22000H22200H代码段代码段30000H33FFFH 汇编语言程序设计汇编语言程序设计 第第2章章 微处理器的结构及存储器组织微处理器的结构及存储器组织第第3030页页第第30页页 缺
40、省16位段+偏移寻址组合 段 偏移 主要用途 CS IP 指令寻址 SS SP或BP 堆栈寻址 DS BX,DI,SI或16位数 数据寻址 ES 串指令DI 目标串寻址5.隐含段和偏移寄存器隐含段和偏移寄存器 8086Pentium微处理机中,段寄存器和偏移寄存器组合有一定规则。缺省32位段+偏移寻址组合 段 偏移 主要用途 CS EIP 指令寻址 SS ESP或EBP 堆栈寻址 DS EAX、EBX、ECX、EDX、EDI、ESI、8位或32位数 数据寻址 ES 串指令DI 串指令寻址 FS 不缺省 一般寻址 GS 不缺省 一般寻址 汇编语言程序设计汇编语言程序设计 第第2章章 微处理器的结构及存储器组织微处理器的结构及存储器组织第第3131页页第第31页页本章小结本章小结 本章介绍了实模式下本章介绍了实模式下80 x86/Pentium微处理器的存储器微处理器的存储器的组织方式及寻址方式。的组织方式及寻址方式。实模式下存储器管理采用分段方式,每段最大寻址空间实模式下存储器管理采用分段方式,每段最大寻址空间为为64K。