当前位置:首页 > 内存 > 正文

8086内存寻址空间

  • 内存
  • 2024-07-03 04:15:36
  • 7708

一、8086是怎样完成20位地址寻址的,为什么样这么做?求答案,越详细越好。段基地址加上偏移地址就形成了20位的实际地址,其中段基地址是将段寄存器的内容左移四位,即后面加四个零得到的。因为8086有20条地址线,可以完成20位地址寻址,但只有16条数据线(寄存器都是16位的,只能直接寻址64KB地址空间),所以左移四位的方法是使用,这样我们就得到了20位地址。


二、8086微处理器地址总线20根,该处理器寻址空间为?你误解了6位这句话。内部地址总线没有16位,但寄存器有,例如AX、BX、SI和DI是地址代码。只能表示16位。2的16次方等于64K。这是程序员可以通过8086/8088CPU提供的地址总线直接访问的内存位置。20次方等于1M。这是CPU的最大内存空间
有一个例外:CPU可以访问1M内存;但寄存器只代表64K的内存大小。因此,在大小为64K的1M内存空间中定义了段地址和偏移地址的概念,然后在段的开头加上“偏移地址”。访问1M内存中的任意空闲空间
如何获取段地址?>可以通过SEG语句提取STR的段地址并发送给DX。
希望以上内容对您有所帮助。


三、8086cpu有20位地址总线,可传达20位地址,那么为什么寻址能力要用二的二十次方算成一MB呢?,,20位的地线之所以可以寻址2的20次方,是因为计算机使用二进制码运算,即单个位可以表示0或1,2位十进制中的最大值为4。依此类推,20位地址线的二进制寻址最大值为1,048,576(这是地址数,不是内存容量)。1048576字节÷1024字节/MB=1MB(字节)。
。,你的错误原因是你把内存地址单元号(相当于某个房间号)当成了内存容量值。注意每个房间的存储空间是8bit=1Byte(字节)容量。如果减少8倍,自然就得到128KB。