c++ - ASM 堆栈使用

标签 c++ c assembly inline-assembly

据我了解,栈可以用来存储数据,当你需要实现功能或者只是用完寄存器来使用。我的问题是一般使用的堆栈是哪一 block 内存。我的印象是这取决于预取过程和其他因素。此外,堆栈在什么时候被加载回 RAM。

最佳答案

每个进程都有线程,每个线程都有一个堆栈。每个进程都有自己的空间,称为进程地址空间。线程在此进程地址空间中分配它们的堆栈。这个空间是一个虚拟空间,也就是说一个进程获得 4 GB 的进程空间,它可能并不总是在 RAM 上。当其他进程需要 RAM 时,它可能会被调出到辅助内存。基本上,您可以假设堆栈是由操作系统管理的一 block 内存,通过在辅助内存、RAM、缓存等之间移动来优化最佳读/写时间。

我主要在 Windows 上工作,上面的陈述适用于 Windows。我不确定其他操作系统。

关于c++ - ASM 堆栈使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8754113/

相关文章:

c++ - 提高比较 vector 元素的运行时复杂性的效率?

c++ - 在 C++ 中,如何计算出在运行时从特定类派生了多少个类

c - char 数组是否需要比您打算使用的大一个字节? - C

linux - 如何执行 x86 计算机的硬件重置?

assembly - 更改汇编中用户输入的行尾字符

c++ - Tesseract OCR 未正确将文本拆分为不同的结果集

c++ - 在C++中乱序乘以 vector 中的数字

C:程序跳过下一个输入

连接 C 字符串

Linux 上的 C++/汇编 IDE