根据黑客的汇编入门(第二部分)虚拟内存组织,Linux程序
.text
段从0x0804800
开始,堆栈顶部从0xbffffff
开始。这些数字的意义是什么?为什么不从0x0000000
(或0x0000020
或0x0000040
以跳过NULL
的下一个32位或64位)开始.text
?为什么不将堆栈顶部设置为0xfffffff
?
NULL
(0x0004096 vs. 0x804800)高了200个数量级。您还没有提到堆栈不从内存字面顶部(0xfffffff)开始的原因。 - Heath Borders.text
从那么高的位置开始。但是为什么不行呢?我已经在最后一段中解决了栈位置的问题。 - Alexey Frunze