毕业论文开发语言企业开发JAVA技术.NET技术WEB开发Linux/Unix数据库技术Windows平台移动平台嵌入式论文范文英语论文
您现在的位置: 毕业论文 >> 开发语言 >> 正文

用段地址*16+偏移地址得出物理地址后,那个物理地址就是数据在内存中的位置吗

更新时间:2012-12-18:  来源:毕业论文

用段地址*16+偏移地址得出物理地址后,那个物理地址就是数据在内存中的位置吗
看王爽的汇编语言的时候,有个疑惑。就是用段地址*16+偏移地址得出物理地址后,那个物理地址就是数据在内存中的位置吗?我看都是20位的物理地址,因为有20位地址总线,比如10000H。但我用
#include <iostream>
using namespace std;

int main()
{
    int p = 1;
    cout << &p << endl;
    return 0;
}
输出1所在的位置时,结果为0X22ff44,和上面物理地址的形式差别很大呀,不解中。。。我原本以为也是5位16进制数的。为什么呢

intel cpu编程时 有3类地址概念

虚拟地址:例如汇编中的cs:0000之类的,在16为系统是20位地址,应用程序和内核都可以使用

物理地址:内存的实际地址(可能表达不准确),就是硬件连接ram时,ram的地址有可能是ram的选择线与cpu的地址线30连接,那么ram的地址就从0x40000000

线性地址:就是把地址从0~ram大小表示,应用程序和内核使用起来方便

虚拟地址和线性地址,应用程序用哪种,是由os确定的。确定的是linux让应用程序使用线性地址,windows不确定

理解是错误的,不是物理地址 王爽那本书讲的是16位的cpu,地址线16根,而现在的cpu大多32根地址线,也就是4G的寻址范围。

设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优尔论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。