标签: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 |
标签:text order dump oat linu 单元 ext 问题: 指令
原文地址:http://www.cnblogs.com/fresh-fish/p/7407069.html