第3章微处理器及其系统-2new.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章微处理器及其系统-2new.ppt

3.3 8086/8088的存储器 3.3.1 存储器的组织 3.3.2 存储器的分段 3.3.3 存储器的物理地址和逻辑地址 3.3.4 堆 栈 3.3.5 “段加偏移”寻址机制允许重定位 (1) 8086系统中,1M字节分为2个512K的存储体,一个存储体中的都是偶数地址,叫偶体,另一个都是奇数地址,叫做奇体。如图所示。 读字节和字 * * 3.3 8086/8088的存储器 8086CPU有20根地址线,它的直接寻址空间为220=1M字节,这1M字节空间物理地址编码为00000H-FFFFFH。 存储单元地址按照字节编址 处理器对内存的访问需一个总线周期 存储体与总线的连接 3.3.1存储器的组织 (2)访问一个存储体,只需19位地址,剩下一位用来区分访问那个存储体。A0=0为偶存储体,A0=1 为奇存储体 (3) 信号:由该信号和A0控制读写 无操作 1 1 只访问偶存储体,R/W低字节 0 1 只访问奇存储体,R/W高字节 1 0 同时访问2存储体,R/W一个字 0 0 操作(读或写) A0 内存地址空间和数据组织 若存放的信息是字节,则按顺序存放 若存放的信息是字,则将字的低位字节存放在低地址,高位字节存放在高地址,一般字的起始地址为偶数地址单元, 若存放的信息是双字,则将双字的低位字存放在低地址,高位字存放在高地址。双字起始地址能被4整除。 低字节低地址,高字节高地址 3.3.2 存储器的分段 8086/8088系统中存储器按字节编址,可寻址的存储器空间为1M字节,因此每个字节所对应的地址是20位。 为了解决20位地址和16位寄存器之间的矛盾,在8086/8088系统中,把1M存储空间分成若干个逻辑段,并允许它们在整个存储空间浮动。 在采用分段结构的存储器中,每一个存储单元可以看成具有两种类型的地址:物理地址和逻辑地址。 3.3.3 存储器的物理地址和逻辑地址 物理地址也称为绝对地址,它是20位的,是唯一标识1M字节空间的某一字节的地址。它是由逻辑地址变换得来的。 逻辑地址由段基址和偏移地址两个部分构成,它们都是无符号的16位二进制数。 物理地址 每个内存单元的物理地址都是唯一的,同一个物理地址可以由不同的逻辑地址来构成。 物理地址是CPU与存储器进行数据交换时实际寻址所使用的地址。 物理地址=段基址×10H+偏移地址 逻辑地址 段基址是段寄存器给出的段起始地址;偏移地址为存储单元在段内相对于段起始地址的偏移距离。 段基址一般由操作系统将程序装入内存时设置,程序员在编程时主要使用段内偏移地址,段内偏移地址也称为有效地址(EA)。 段基址来自段寄存器,偏移量通常来自指令指针寄存器、基址寄存器、指针寄存器和变址寄存器,也可以由其中几个寄存器的内容组合而成。 ≤64KB ≤64KB ≤64KB ≤64KB 00000 10550 250A0 8FFB0 EFF00 FFFFF 代码段 数据段 附加段 堆栈段 1055 250A 8FFB EFF0 CS DS ES SS 在8086/8088的存储器空间中,为了简化操作,要求各个逻辑段从节(16字节)的整数边界开始,即段首地址低四位为“0”,把段首地址的高16位称为“段基址”存放在段寄存器DS或CS或SS或ES中。 CS IP 指令 SS SP 堆栈操作 SS BP 存取堆栈内的数据 DS BX、SI、DI或指令 存取数据段的的 中给出的8/16位数据 局部数据 ES DI 串操作的目标操作 数 段寄存器 偏移地址 操作类型 访问存储器的操作数类型不同,使用的段寄存器和段内偏移量的来源也不同。 3.3.4 堆 栈 堆栈是按照“先进后出”原则组织的存储区域,堆栈的大小最大为64KB 堆栈由堆栈段寄存器SS和堆栈指针寄存器SP来寻址,SS给出堆栈段的段基址,SP指向当前栈顶——段基址到栈顶的偏移量 栈底为堆栈空间的高地址单元,栈顶为低地址单元。 堆栈操作有两种操作,即压栈和出栈。 压栈:先将SP的值减2,然后将16位数据压入新栈顶; 出栈:先从当前栈顶取出16位数据,然后SP加2,指向新的栈顶。 堆栈操作以字为单位。 PUSH AX ;(AX)=1234H PUSH BX ;(BX)=8765H POP AX ;

文档评论(0)

dreamzhangning + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档