(龚)微型计算机结构资料讲解.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2.16 80x86微机的存储器中存放信息如图2.13所示。试读出30022H和30024H字节单元的内容,以及30021H和30022H字单元的内容。 图2.13 2.16题的数据存放情况 人有了知识,就会具备各种分析能力, 明辨是非的能力。 所以我们要勤恳读书,广泛阅读, 古人说“书中自有黄金屋。 ”通过阅读科技书籍,我们能丰富知识, 培养逻辑思维能力; 通过阅读文学作品,我们能提高文学鉴赏水平, 培养文学情趣; 通过阅读报刊,我们能增长见识,扩大自己的知识面。 有许多书籍还能培养我们的道德情操, 给我们巨大的精神力量, 鼓舞我们前进。 * 其中,第一列就是每个小段的首地址。其特征是:在十六进制表示的地址中,最低位为0(即20位地址的低4位为0)。在1?MB的地址空间里,共有64?K个小段首地址,可表示如下: 00000H 00010H 41230H 41240H FFFE0H FFFF0H 在1MB的存储器里,每一个存储单元都有一个惟一的20位地址,称为该存储单元的物理地址。CPU访问存储器时,必须先确定所要访问的存储单元的物理地址才能取得(或存入)该单元中的内容。20位物理地址由16位段地址和16位偏移地址组成,段地址是指每一段的起始地址(又称段基地址),由于它必须是小段的首地址,所以其低4位一定是0,这样,就可以规定段地址只取段起始地址的高16位值。偏移地址则是指在段内相对于段起始地址的偏移值。物理地址的计算方法,如图2.8(b)所示。 图2.8 实模式存储器寻址时物理地址的形成与计算过程 也就是说,把段地址左移4位再加上偏移地址值就形成物理地址。或写成 物理地址=段地址×16D+偏移地址 图2.9是这种寻址方式的图示。显然,每个存储单元只有惟一的物理地址,但它却可由不同的段地址和不同的偏移地址组成。 图2.9 实模式存储器寻址 2. 段寄存器 在8086~80286中,有四个专门存放段地址的寄存器,称为段寄存器。它们是代码段CS、数据段DS、堆栈段SS和附加数据段ES寄存器。每个段寄存器可以确定一个段的起始地址,而这些段则各有各的用途。代码段存放当前正在运行的程序。数据段存放当前运行程序所用的数据。堆栈段定义了堆栈的所在区域,堆栈是一种数据结构,它开辟了一个比较特殊的存储区,并以后进先出的方式来访问这一区域,在第3章里还会专门加以说明。 附加数据段是附加的数据段,它是一个辅助的数据区,也是串处理指令的目的操作数存放区。程序员在编制程序时,应该按照上述规定把程序的各部分放在规定的段区之内。 在80386及其后继的80x86中,除上述4个段寄存器外,又增加了2个段寄存器FS和GS,它们也是附加的数据段寄存器,所以8086~80286的程序允许划分4个存储段,而其他80x86程序可允许划分6个存储段。 除非专门指定,一般情况下,各段在存储器中的分配是由操作系统负责的。每个段可以独立地占用64 KB存储区,如图2.10所示。各段也可以允许重叠。下面的例子就可以说明这种情况。 图2.10 段分配方式之一 【例2-1】 如果代码段中的程序占有8?KB(2000H)存储区,数据段占有2?KB(800H)存储区,堆栈段只占有256个字节的存储区。此时段区的分配如图2.11所示。从图中可以看出,代码段的区域可以是02000H~11FFFH,但由于程序区只需要8 KB,所以程序区结束后的第一个小段的首地址就作为数据段的起始地址。也就是说,在这里,代码段和数据段可以重叠在一起。当然每个存储单元的内容是不允许发生冲突的。所谓的重叠只是指每个段区的大小允许根据实际需要来分配,而不一定要占够64?KB的最大段空间。实际上,段区的分配工作是由操作系统完成的。但是,系统允许程序员在必要时可指定所需占用的内存区。 图2.11 段分配方式之二 如果程序中的4个段都在64?KB的范围之内,而且程序运行时所需要的信息都在本程序所定义的区段之内,那么程序员只要在程序的首部设定各段寄存器的值就可以了。如果程序的某一段(例如数据段)在程序运行过程中会超过64 KB空间,或者程序中可能访问除本身4个段以外的其他段区的信息,那

文档评论(0)

糖糖 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档