网站大量收购独家精品文档,联系QQ:2885784924

第2章实模式下的存储器组织与寻址方式讲解.ppt

第2章实模式下的存储器组织与寻址方式讲解.ppt

  1. 1、本文档共42页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第2章 实模式下的存储器组织与寻址方式 前面提到,数据可存储在寄存器、内存单元,I/O端口。现在需考虑的问题是:在编程时如何访问这些数据? (1)若在寄存器中,可直接用寄存器名来访问寄存器中的数据。 (2)若在内存单元或I/O端口,则需按地址访问。 2.1实模式下的存储器组织 2.1.1 存储单元的地址和内容 2.1.2 存储器的分段组织 2.2寻址方式 2.2.1 数据寻址方式 2.2.2 程序存储器寻址方式 2.1.1存储单元的地址和内容 存储单元地址 :8086系统中,为了标识和存取每一个存储单元,给每个存储单元规定一个编号,这就是存储单元地址。 存储单元的内容 :一个存储单元中存放的信息称为该存储单元的内容。 8086系统中一个存储单元可存放一个字节数据。 从图可看到,地址为34560H的存储单元中的内容是34H; 而地址为34561H的字节存储单元中的内容是12H。 2.1.2存储器的地址分段 8086CPU的地址线是20位的,存储器的物理地址是20位,而8086CPU中的寄存器都是16位的。那么如何用16位寄存器来表达20位物理地址信息? 思考题:为什么8086CPU的地址线设计为20位(或内存单元的物理地址为什么设计成20位?)?如果设计成16位(和寄存器的宽度一样),内存访问的地址表达就简单了。请问设计者这样设计的优点是? 可以扩大CPU的访存空间。 220=1024KB, 216=64KB 问题解决方法1 将存储器分成若干段,对某一单元的地址用段首地址和相对于段首地址的偏移量综合表示。 这种方法类似于电影院里对座位的编号。这种分段表示可有效缩减地址的长度。 这样 上图中第一个标注单元的地址为: 段地址为:00000000000000000000 偏移量(或偏移地址)为: 01 它的物理地址为: 段地址+偏移量 即:000000000000000000001 这样 上图中第二个标注单元的地址为: 段地址为:00001111111111110000 偏移量(或偏移地址)为: 10 它的物理地址为: 段地址+偏移量 即:00001111111111110010 按这样的方法有以下两个问题困惑着我们,值得进一步思考? (1)偏移量如果过大,16位寄存器表示不了怎么办? (2)段首地址(或段地址)为20位,如何用16位寄存器来表示? 对于问题1,如果将一段的长度限制在64K以内,则偏移量的位数不超过16位,这样就可以用16位寄存器表达。 (16位寄存器能表示的最大偏移量为: 1111111111111111(16个1), 即为216-1=64K-1,再加上段首的一个单元,共64K. 对于问题2,分段时,如果只将单元地址的最后四位为0的地址作为段首地址,用16位寄存器存放它的前16位,在进行地址运算时再将16位段地址末尾补4个0。 这样,20位物理地址的计算方法表示如下: 小结: (1)在1M字节的存储器里,每一个单元都有一个唯一的20位地址,称为该单元的物理地址。CPU访问存储器时,必须先确定要访问的存储单元的物理地址才能取得(或存入)该单元的内容。 (2)根据要求可把1M字节地址空间划成若干逻辑段。每个逻辑段必须满足两个条件:一是逻辑段的起始地址(简称段首址)必须是16的倍数(即末尾4位是0);二是逻辑段的最大长度为64K。 (3)20位物理地址由16位段地址和16位偏移地址组成。 段地址是每一段的起始地址,其低4位一定是0,这样就可以规定段地址只取段起始地址的高16位来表示。 偏移地址是指在段内相对于段起始地址的偏移值。 这样,物理地址 的计算方法表示如下: (4)一个汇编语言源程序,一般由两部分组成: 代码段+ 数据段,有时还包括堆栈段、附加段。 除非专门指定,在一般情况下,各段在存储器中的分配(或段地址)由操作系统负责,用户程序中只涉及偏移量。 例:MOV AX, [2000H] 表示把DS+2000H地址所指向的单元的数传送给AX寄存器。 (5)每段的最大长度为64K,但各段的实际大小操作系统会根据实际需要来分配。不一定要占有64K最大空间。 (6)CPU在物理地址的形成过程中,会按有一定规则去选择段寄存器,除非在程序中特别说明。 (7)该存储管理方式允许程序在存储器内重定位(一个程序不加修改在另外一个存储区仍可以运行),因为程序内只涉及依偏移地址,不同存储区只需修改段寄存器即可。这方便了操作系统对存储器的管理。 2.2寻址方式 2.2.1 数据寻址方式(操作数寻址) 2.2.2 程序寻址方式(指令寻址) 2.2.1数据寻址方式 计算机中指令由

文档评论(0)

美洲行 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档