2011-04-30 69 views
3

我正在阅读有关CIL的内容,并且我一直看到对“虚拟执行堆栈”的引用(例如创建本地变量并为其分配值时)。什么是“虚拟执行堆栈”?

但我完全不明白虚拟执行堆栈是什么。它是“调用堆栈”,当我们说结构被加载到堆栈时,我们总是提到相同的堆栈?

回答

2

堆栈指令集直接在硬件中执行。另一方面,虚拟堆栈指令以软件解释。虚拟化与虚拟机(虚拟机)在同一线上,您将在虚拟机内获得模拟的操作系统。在虚拟堆栈中,所有硬件堆栈都被抽象(孤立)远离你。

例如,机器语言(010001)由硬件(CPU)直接处理。另一方面,虚拟指令由软件处理,模拟和隔离底层硬件的复杂行为。请参阅:http://en.wikipedia.org/wiki/Stack_machine#Virtual_stack_machines

阅读一些关于“Java虚拟机”的内容,这可能是虚拟堆栈机中最流行的实现。

+0

@Teoman:你能详细说一点吗?谢谢! – richard 2011-04-30 05:49:00

+0

@Teoman:好的,谢谢。在谈论CIL时,虚拟执行堆栈是否与.NET中总是提到的调用堆栈相同?只有这一堆?我只是想知道他们是否是同一件事的两个名字? – richard 2011-04-30 05:54:21

+0

@Teoman:好的,谢谢。所以你说只有一个“堆栈”,“调用堆栈”,“虚拟执行堆栈”。然后还有一堆,完全不同。正确? – richard 2011-04-30 06:01:11