【发布时间】:2018-11-10 20:57:11
【问题描述】:
在 64 位计算机上小于 12 个十六进制数字的内存地址的值是多少?
例如,当我在一个简单的汇编程序上运行 gdb 并运行 (gdb) info frame 时,我得到:
Stack level 0, frame at 0x7fffffffd970:
rip = 0x40052f in main (file.s:11); saved rip = 0x7ffff7a2d830
source language asm.
Arglist at 0x7fffffffd960, args:
Locals at 0x7fffffffd960, Previous frame's sp is 0x7fffffffd970
Saved registers:
rbp at 0x7fffffffd960, rip at 0x7fffffffd968
第二行的第一部分rip = 0x40052f in main (file.s:11) 我相信当我调用info frame 时说明了指令指针的值。但是为什么它保存的内存地址不是 12 位十六进制数字呢?
另外,如果我输入 (gdb) x 0x7fffffffd968(我希望是 0x7ffff7a2d830),我会得到:
0x7fffffffd968: 0xf7a2d830
这是否意味着任何少于 12 个十六进制数字的内存地址都包含隐含的7ff...?
【问题讨论】:
标签: gdb memory-address