加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

汇编语言段地址、偏移地址详解

(2014-10-09 10:11:06)
标签:

段地址

偏移

地址

单元

物理地址

分类: 技术分享

举个很简单的例子:如果说联合国用01表示中国,02表示美国,这里的01和02表示段地址。而各个国家的首都也是01,这个01就是偏移地址。那么0101就表示北京,0201表示华盛顿,这里段地址加偏移地址就能找到具体的城市了。

1.什么是逻辑地址?

:逻辑地址是用户编程时使用的地址,分为段地址和偏移地址两部分。

逻辑地址表示形式:3020:055AH---------(汇编语言中,数字后面加H表示16进制)

2.为什么要用逻辑地址?(逻辑地址的产生背景)

:8086cpu访问存储器时,地址寄存器(16位)要先向地址总线发出地址信号(地址总线是专门用来存取内存地址的,故与内存单元有关,20位),而地址寄存器只有16位,从地址寄存器发出的地址信号,所能访问的存储空间只有2^16 = 65536 = 64KB,达不到20位地址总线所提供的地址范围。

针对这种情况,就把内存地址分为若干段,每段有一些存储单元构成。用段地址指出是哪一段,偏移地址标明是段中的哪一个单元。

3.什么叫段地址,偏移地址?之间有什么关系?

:Ⅰ.把内存地址分为若干段,每段有一些存储单元构成。用段地址指出是哪一段,偏移地址标明是段中的哪一个单元。

  Ⅱ.段地址和偏移地址都是16位2进制数。

  Ⅲ.段地址和偏移地址有多种组合,故存在多个地址组合指向同一个存储单元上。

4.逻辑地址唯一么?

:不唯一,因为段地址和偏移有多种组合,故存在多个地址组合指向同一个存储单元上。

5.cpu执行程序时,采用的是逻辑地址还是物理地址?

:物理地址---用户编程时采用的逻辑地址在cpu执行程序时都要转换成物理地址。

这是由cpu的地址加法器完成的。

逻辑地址与物理地址的转换:

6.逻辑地址怎样转换为物理地址?

:转换时,先将16位的段地址左移4位,相当于乘以16或者16进制的10H,再和偏移地址相加。

转换公式为:

物理地址 = 段地址*10H + 偏移地址

如:将3020:055AH转换为物理地址:----= 3020*10H(左移四位)+055AH = 3075AH

7段与偏移地址是什么关系?

:段是由存储单元构成的,段包含偏移地址对应的存储单元。即偏移地址对应的字节存储单元在段中。.

8.段的大小指的是什么?

:指的是这个段包含存储单元的多少。

9.将内存分段的依据?以及段的相关知识

:段地址和偏移地址都是16位二进制数,

每段最大64K字节单元(2^16=65536 = 64KB),每段最小16个字节单元(硬性规定),也可以100个,1000个到最多达到65536个。

偏移地址范围:0000H --- FFFFH

10.什么叫小段?

:规定每16个字节单元为一小段。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有