据我了解,栈可以用来存储数据,当你需要实现功能或者只是用完寄存器来使用。我的问题是一般使用的堆栈是哪一 block 内存。我的印象是这取决于预取过程和其他因素。此外,堆栈在什么时候被加载回 RAM。
最佳答案
每个进程都有线程,每个线程都有一个堆栈。每个进程都有自己的空间,称为进程地址空间。线程在此进程地址空间中分配它们的堆栈。这个空间是一个虚拟空间,也就是说一个进程获得 4 GB 的进程空间,它可能并不总是在 RAM 上。当其他进程需要 RAM 时,它可能会被调出到辅助内存。基本上,您可以假设堆栈是由操作系统管理的一 block 内存,通过在辅助内存、RAM、缓存等之间移动来优化最佳读/写时间。
我主要在 Windows 上工作,上面的陈述适用于 Windows。我不确定其他操作系统。
关于c++ - ASM 堆栈使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8754113/