c++ - 自定义 VM 中有多少个寄存器?

标签 c++ vm-implementation

我正在设计一个自定义 VM,并且很好奇我应该使用多少个寄存器。最初,我有 255 个,但我有点担心每次调用函数时将 255 个指针(一整个 KB)备份到堆栈或堆上,而其中大多数甚至不会被使用。我应该使用多少个寄存器?

最佳答案

您可能想查看 register windows ,这是一种减少任何时候可用的“事件”寄存器数量的方法,同时仍将大量寄存器保留在核心中。

话虽如此,您可能会发现使用基于堆栈的架构更为方便。一些旨在在软件(JVM、CLR、Python 等)中实现的主要虚拟机使用堆栈架构。为堆栈编写编译器肯定比人为限制的一组寄存器更容易。

关于c++ - 自定义 VM 中有多少个寄存器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2948756/

相关文章:

c++ - 如果我将一个大函数声明为内联函数怎么办?

c++ - 候选人期望 6 个参数,提供 0 个

c++ - 在 switch 语句中使用算术和逻辑运算符

python - 在 x86 上以汇编形式实现的虚拟机

java - 为什么 Java 使用静态堆而不是允许任意数量的内存?

jvm - 为什么JVM是基于堆栈的而Dalvik VM是基于寄存器的?

c - 在 C 中,确保多段代码的汇编指令数是固定的

C++ unordered_map 与 uint8_t

c++ - 解析 C++ 字符串

c - 有没有办法在 C switch 语句中使用指针?