微型计算机原理课件3(王明).pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* 3.3 8086/8088存储器和I/O组织 3.3.1 8086/8088存储器组织 一、8086/8088存储空间 2 . 8086/8088的存储器按字节单元编址,每个单元有一个唯一与之对应的20位的地址,这个20位的地址称为物理地址。地址从00000H 开始顺序编排到FFFFFH。 1. 8086/8088可直接对1 M个存储单元进行访问。每个存储单元可存放一个字节的二进制数据。 物理地址是20位的无符号数,它是CPU访问单元所用的地址。 存放双字型数据,则要占用地址连续的4个存储单元,同样,低字节存放在低地址单元,高字节存放在高地址单元,低地址做为该双字的地址(如图3.10)。 4. 具有偶数地址的字称为“规则字” ,奇数地址的字称为“非规则字” 3. 存放字数据时,要占用地址连续的两个单元,CPU将字的低位字节存在低地址单元,高位字节存在高地址单元。低地址做为该字的地址。 图3.10 数据在存储器中的存放 设从地址E800AH开始的连续4个存储单元中存放了一个双字型数据 则该数据为66A65E65H,记为:(E800AH)=66A65E65H。 设从地址0011FH开始的连续两个存储单元中存放了一个字型数据 则该数据为DF46H,记为:(0011FH)=0DF46H。 二、存储器分段结构 8086/8088的寄存器都是16位的,这只能直接寻址64 KB,为了可对1 M个存储单元进行管理和访问,8086/8088采用了分段结构的存储器管理方法。 1 . 将存储空间分为许多段来使用,每个段的容量不大于64 KB。段可在整个存储空间中浮动,各段之间可以紧密相连,也可以互相重叠。 2 . 每个段的首单元地址的低4位必须为全0,即段首单元地址必须是16的整数倍。段首单元的地址称为段起始地址。 3 . 段分为4种: 代码段、数据段、堆栈段、附加数据段。代码段用于存放程序代码,数据存放在数据段、堆栈段或附加数据段。图3.11给出了存储器分段示意 4 . 段首单元地址的高16位称为“段基址”, 要访问某个段时,必须将其段基址放在相应的段寄存器中。代码段、数据段、堆栈段、附加数据段的“段基址”分别存放在CS、DS、SS和ES中 5 . 段中每一单元在其段内的地址用相对于其段首单元的“偏移量”来表示,这个偏移量称为该单元的段内“偏移地址”(也称为“有效地址”EA)。 6 . 段基址、偏移地址称为逻辑地址,它们是16位的无符号二进制数。 一个单元的地址可用逻辑地址来表示,其形式为段基址: 偏移地址 逻辑地址是程序设计时使用的地址,它不是单元的访问地址。 三、物理地址的形成 存储单元的物理地址可由它的逻辑地址获得。 10H 物理地址=段基址X 16+偏移地址 左移4位 物理地址的形成是通过BIU中的地址加法器来实现的。 一个存储单元被划分在不同的逻辑段时,它对应的逻辑地址是不同的。 段基址 偏移地址 物理地址 在段基址为1124H的逻辑段中,该单元的偏移地址为 0003H 设数据段段基为2A0FH, 则其内偏移地址为8000H的单元的物理地址为 : (DS)?10H+8000H=2A0FH?10H+8000H=320F0H 采用分段管理和使用方法后,使8086/8088可访问1M的内存。 在段基为1123H的逻辑段中,该单元的偏移地址为 0013H 表3.8 存储器操作时段地址和段内偏移地址的来源 ? 存储器操作类型 ? 段 地 址 ? 偏移地址 ? 正常来源 ? 其他来源 取指令 ? CS ? 无 ? IP ?存取操作数 ? DS CS、ES、SS ? 有效地址EA 通过BP寻址存取操作数 ? SS ? CS、ES、SS ? 有效地址EA 堆栈操作 ? SS ? 无 ? BP、SP ?源字符串 ? DS ? CS、ES、SS ? SI ?目的字符串 ? ES 无 ? DI 存储器操作时段地址和偏移地址的约定是系统设计时事先已规定好的,编写程序时必须遵守这些约定。 图3.11 存储器分段示意图 四、堆栈操作 堆栈是在存储器中开辟的一个特定区域。堆栈所处的段称为堆栈段,和其它逻辑段一样,它可在1 MB的存储空间中浮动。堆栈的主要功能有以下两点: (1)存放操作数(变量)。 若要采用非栈操作指令来访问放在堆栈单元中的操作数,则段地址需由堆栈段寄存器SS提供,操作数单元在堆栈段内的偏移地址必须由基址寄存器BP提供。 (2) 保护断点和现场。 这是堆栈的主要功能,

文档评论(0)

181****7127 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档