码迷,mamicode.com
首页 > 其他好文 > 详细

Jvm(43),指令集----加载与存储指令

时间:2018-09-22 23:23:58      阅读:242      评论:0      收藏:0      [点我收藏+]

标签:行操作   技术   索引   常量   fst   组元   nbsp   分享图片   icons   

加载和存储指令用于将数据在栈帧中的局部变量表和操作数栈之间来回传输,这类指令包括如下内容。

将一个局部变量加载到操作栈:iload、iload_<n>、lload、lload_<n>、fload、fload_ <n>、dload、dload_<n>、aload、aload_<n>。

将一个数值从操作数栈存储到局部变量表:istore、istore_<n>、lstore、lstore_<n>、 fstore、fstore_<n>、dstore、dstore_<n>、astore、astore_<n>。

将一个常量加载到操作数栈:bipush、sipush、ldc、ldc_w、ldc2_w、aconst_null、 iconst_m1、iconst_<i>、lconst_<l>、fconst_<f>、dconst_<d>。扩充局部变量表的访问索引的指令:wide。

存储数据的操作数栈和局部变量表主要就是由加载和存储指令进行操作,除此之外,还有少量指令,如访问对象的字段或数组元素的指令也会向操作数栈传输数据。

public class Demo5 {

    public int add(int a, int b) {

         return a + b;

    }

}

技术分享图片

从上面我们可以看到将一个局部变量加载到操作栈 iload_1 iload_2 入栈,然后iadd 最后就是 ireturn

下面我们在来看看入局部变量表的信息。

public class Demo5 {     public int add(int a, int b) {

         int c = a + b;

         return 1 + 1;

    }

}

技术分享图片

Jvm(43),指令集----加载与存储指令

标签:行操作   技术   索引   常量   fst   组元   nbsp   分享图片   icons   

原文地址:https://www.cnblogs.com/qingruihappy/p/9691443.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!