汇编语言课件——chap2.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文档。上传文档
查看更多
2.4 存储器 存储器是用来存放程序、数据、中间结果和最终结果的记忆装置。 数据的存储格式 计算机中信息的数据类型有: 位(bit)、字节(byte)、 字(word)、双字(double word)等 二进制位:存储一位二进制数:0或1。 字节:8个二进制位,D7~D0。 字:16位,2个字节,D15~D0。 双字:32位,4个字节,D31~D0。 数据类型 存储单元的地址 在存储器中,以字节为单位存储信息 每个字节单元给以一个唯一的存储器地址,称为物理地址 地址从0开始编号,顺序加一,书写格式为十六进制数 存储单元中存放的信息为该存储单元的内容 存储单元及其存储内容 每个存储单元都有一个编号——存储器地址 每个存储单元存放一个字节的内容 如果用X表示存储单元的地址,那么X单元的内容表示为(X) 例如:0004H单元存放有一个数据78H (0004H)=78H 存储方式 多字节数据在存储器中占连续的多个存储单元: 存放时,低字节存入低地址,高字节存入高地址; 多字节数据占据的地址空间用它的低地址表示。 例如:上图中4号“字”单元的内容为: (0004H) = 5678H 4号“双字”单元的内容为: (0004H) = 数据的地址 同一个存储器地址可以是字节单元地址、字单元地址、双字单元地址等等(视具体情况来确定)。 字单元地址可以是偶数,也可以是奇数,但机器是以偶地址访问存储器 对于奇地址的数据,处理器访问时,需要访问二次存储器。 实模式存储器的寻址 8086CPU有20条地址线, 最大可寻址空间为220=1MB, 物理地址范围从00000H~FFFFFH。 8086的字长为16位,那么所能表示的地址范围应该是0000~FFFFH( 216=64K) 实模式就是为8086设计的工作方式,它要解决在16位字长的机器里如何提供20位地址的问题 8086CPU将1MB空间分成许多逻辑段(Segment), 每个段最大限制为64KB,这样段内地址可以用16位表示段地址的低4位为0000B。 段不能起始于任意地址,必须从任一小段的首地址开始,机器规定:从0开始,每16个字节为一小段: 00000,00001,00002,…,0000E,0000F 00010,00011,00012,…,0001E,0001F 00020,00021,00022,…,0002E,0002F 在1MB的地址空间里,共有64K个小段首地址 物理地址和逻辑地址 对应每个物理存储单元都有一个唯一的20位编号,就是物理地址,从00000H~FFFFFH。 20位物理地址由16位段地址和16位偏移地址组成 由于段地址必须是小段的首地址 ,所以低4位一定是0,规定段地址只取段起始地址的高16位值 分段后在用户编程时,采用逻辑地址,形式为 段地址 : 段内偏移地址 将逻辑地址中的段地址左移4位(即在段地址的末尾加4位0),加上偏移地址就得到20位物理地址。 例如: 逻辑地址“1460H:100H” = 物理地址14700H 显然,一个物理地址可以有多个逻辑地址 段基地址:段内偏移地址 段地址说明逻辑段在主存中的起始位置 8086规定段地址必须是模16地址:xxxx0H 省略低4位0000B,段地址就可以用16位数据表示,就能用16位段寄存器表达段地址。 偏移地址说明主存单元距离段起始位置的偏移量 每段不超过64KB,偏移地址也可用16位数据表示。 段寄存器和逻辑段 8086有4个16位段寄存器: CS(代码段寄存器)指明代码段的起始地址 SS(堆栈段寄存器)指明堆栈段的起始地址 DS(数据段寄存器)指明数据段的起始地址 ES(附加段寄存器)指明附加段的起始地址 每个段寄存器用来确定一个段的起始地址, 每种段均有各自的用途。 代码段(Code Segment) 代码段用来存放程序的指令序列: 代码段寄存器CS存放代码段的段地址, 指令指针寄存器IP指示下条指令的偏移地址; 处理器利用CS:IP取得下一条要执行的指令。 堆栈段(Stack Segment) 堆栈段确定堆栈所在的主存区域: 堆栈段寄存器SS存放堆栈段的段地址, 堆栈指针寄存器SP指示堆栈栈顶的偏移地址; 处理器利用SS:SP操作堆栈顶的数据。 数据段(Data Segment) 数据段存放当前运行程序所用的数据: 数据段寄存器DS存放数据段的段地址, 各种主存寻址方式(有效地址EA)得到存储器中操作数的偏移地址。 处理器利用DS:EA存取数据段中的数据。 附加段(Extra Segment) 附加段是附加的数据段,也用于数据的保存: 附加段寄存器ES存放附加段的段地址, 各种主存寻址方式(有效地址EA)得到存储器中操作数的偏移地址。 处理器利用ES:EA存取附

文档评论(0)

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

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

1亿VIP精品文档

相关文档