1.什么是逻辑地址?
:逻辑地址是用户编程时使用的地址,分为段地址和偏移地址两部分。
逻辑地址表示形式:3020:055AH---------(汇编语言中,数字后面加H表示16进制)
2.为什么要用逻辑地址?(逻辑地址的产生背景)
:8086cpu访问存储器时,地址寄存器(16位)要先向地址总线发出地址信号(地址总线是专门用来存取内存地址的,故与内存单元有关,20位),而地址寄存器只有16位,从地址寄存器发出的地址信号,所能访问的存储空间只有2^16 = 65536 = 64KB,达不到20位地址总线所提供的地址范围。
针对这种情况,就把内存地址分为若干段,每段有一些存储单元构成。用段地址指出是哪一段,偏移地址标明是段中的哪一个单元。
3.什么叫段地址,偏移地址?之间有什么关系?
:1.把内存地址分为若干段,每段有一些存储单元构成。用段地址指出是哪一段,偏移地址标明是段中的哪一个单元。
2.段地址和偏移地址都是16位2进制数。
3.段地址和偏移地址有多种组合,故存在多个地址组合指向同一个存储单元上。
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个字节单元为一小段。
转载自:http://blog.youkuaiyun.com/thisispan/article/details/7685040