首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 汇编语言 >

20选址有关问题-小弟愚钝

2012-03-16 
20选址问题--小弟愚钝前面已经提到16位字长的机器可以访问最大存储空间为64K字节,而PC机的最大存储容量为1

20选址问题--小弟愚钝
前面已经提到16位字长的机器可以访问最大存储空间为64K字节,而PC机的最大存储容量为1M(原MS-DOS操作系统下)。要访问1M字节空间的存储器必须有20位地址,用16进制数表示1M字节的地址范围应该为00000-FFFFF。  
          在1M字节的存储器里,每一个存储单元都有一个唯一的20位地址,称为该存储单元的物理地址。CPU访问存储器时,必须先确定所要访问的存储单元的物理地址才能取得(或存入)该单元的内容。20位物理地址由16位段地址和16位偏移地址组成,段地址是指每一段的起始地址,由于它必须是小段的首地址,所以其低4位一定是0,这样就可以规定段地址只取段起始地址的高16位值。偏移地址则是指在段内相对于段起始地址的偏移值。这样,物理地址的计算方法如下:  

          把段地址左移4位再加上偏移地址值就形成物理地址。或写成:     16dX段地址+偏移地址=物理地址  

疑问:如果是这么算,那么物理地址不是会重复了吗?比如:16*0x0010+0x0000和16*0x0000+0x0100

[解决办法]
不同的段地址+偏移地址的组合的确可以表示同一个物理地址,你可以把它们当作逻辑性的表示。
[解决办法]
这种重复叫回绕:ffff:fff0-> 0x100000,如果A20线为0的话就回绕到0x00000.
[解决办法]
是的,较低段基址+较高偏移量完全有可能=较高段基址+较低偏移量,故而在16位汇编下,可以有多种寻址组合达到相同的目的。

热点排行