喂!目前我正在学习装配的基础知识。早些时候我使用的是TASM和Intel语法。我必须在某些方面初始化堆栈。 但现在我正在使用GNU Assembler和AT& T语法。我查看了很多示例,没有看到堆栈的任何声明/初始化。我想知道我是否必须这样做?或者,可能是,这是在没有我帮助的情况下制作的?如果是这样,它究竟是如何自动初始化的?在数据段中存在重要信息的风险吗?我没有注意到有关堆栈的任何指令。
事先感谢您的回答! 哦,还有一件事:是否有关于类Unix系统的ASM(GAS)编程的好书?
答案 0 :(得分:0)
具有虚拟内存的操作系统处理堆栈的方式与没有虚拟内存的操作系统处理方式有所不同。
ulimit -s
)。由于每个进程都有自己的虚拟地址空间,因此堆栈与任何其他映射虚拟内存区域之间存在大量空间。