节:区分栈的指令集架构和寄存器的指令集架构

Posted 李阿昀

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了节:区分栈的指令集架构和寄存器的指令集架构相关的知识,希望对你有一定的参考价值。

这一讲,我们来说一下JVM的架构模型。

JVM的架构模型

首先,大家要知道一点,就是Java编译器输入的指令流基本上是一种基于栈的指令集架构,而另外一种指令集架构则是基于寄存器的指令集架构。从这点也能看出,指令集的架构模型一共分为两种,一种是基于栈的指令集架构,一种是基于寄存器的指令集架构

我之所以会讲Java编译器输入的指令流基本上是一种基于栈的指令集架构,是因为HotSpot虚拟机当中的任何操作都得经过一个入栈和出栈的过程,而这就是我们通常意义上所说的栈管运行,因此,不难知道HotSpot虚拟机中的执行引擎架构其实就是一种基于栈的指令集架构

此外,大家还要明确的一点是HotSpot虚拟机除了PC寄存器(英文的叫法是Program Counter Register)之外,它就再没有包含其他的寄存器了。

当然,接下来我们也会对比一下基于栈的指令集架构和基于寄存器的指令集架构这两种架构之间的区别。

基于栈式架构的特点

首先来看第一个特点,即设计和实现更简单,适用于资源受限的系统

看到这里,有些小伙伴可能心想,完了,这什么鸡儿意思啊,我也看不懂啊

以上是关于节:区分栈的指令集架构和寄存器的指令集架构的主要内容,如果未能解决你的问题,请参考以下文章

节:区分栈的指令集架构和寄存器的指令集架构

基于栈的指令集与基于寄存器的指令集

JVM基础认知篇(下)

基于栈的指令集与基于寄存器的指令集的区别

精简指令集和复杂指令集的区别

STM32学习-嵌入式微处理器指令集架构