码迷,mamicode.com
首页 > 系统相关 > 详细

深入理解Linux内核 - 第二章 内存寻址 01

时间:2017-08-21 22:58:11      阅读:232      评论:0      收藏:0      [点我收藏+]

标签:text   order   dump   oat   linu   单元   ext   问题:   指令   

1,三个地址

逻辑地址,机器语言指令中用来指定一个操作数或一条指令的地址。

线性地址:32位无符号整数,高达4GB。64位的cpu就是64位的线性地址

物理地址:内存芯片级内存单元寻址。老式x86由32位或36位无符号整数表示。 

2,MMU内存控制单元

存在一个分段单元的硬件电路将一个逻辑地址转换为线性地址

存在一个分页单元的硬件电路将线性地址转换成一个物理地址。

问题:

1,为什么物理地址能够用36位的地址来表示?

2,为什么是逻辑地址转换成线性地址,再由线性地址转换为物理地址,这3个地址是什么关系?

3,一个程序被objdump后的地址是什么地址?如下片段

0000000000400526 <main>:
400526: 55 push %rbp
400527: 48 89 e5 mov %rsp,%rbp
40052a: 48 83 ec 10 sub $0x10,%rsp
40052e: 89 7d fc mov %edi,-0x4(%rbp)
400531: 48 89 75 f0 mov %rsi,-0x10(%rbp)
400535: bf d4 05 40 00 mov $0x4005d4,%edi
40053a: e8 c1 fe ff ff callq 400400 <puts@plt>
40053f: b8 00 00 00 00 mov $0x0,%eax
400544: c9 leaveq 
400545: c3 retq 
400546: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1)
40054d: 00 00 00

 

深入理解Linux内核 - 第二章 内存寻址 01

标签:text   order   dump   oat   linu   单元   ext   问题:   指令   

原文地址:http://www.cnblogs.com/fresh-fish/p/7407069.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!