美文网首页
出栈装入局部变量表指令

出栈装入局部变量表指令

作者: Shaw_Young | 来源:发表于2021-08-19 15:27 被阅读0次

出栈装入局部变量表指令用于将操作数栈中栈顶元素弹出后,装入局部变量表的指定位置,用于给局部变量赋值。

这类指令主要是以store的形式存在,比如xstore(x为i、l、f、d、a)、xstore_n(x为i、l、f、d、a,n为0至3)。

  • 其中,指令istore_n将从操作数栈中弹出一个整数,并把它赋值给局部变量索引n位置。
  • 指令xstore由于没有隐含参数信息,故需要提供一个byte类型的参数指定目标局部变量表的位置。

说明:
一般来说,类似像store这样的命令需要带一个参数,用来指明将弹出的元素放在局部变量表的第几个位置。但是,为了尽可能压缩指令大小,使用专门的istore_i指令表示将弹出的元素放置在局部变量表第1个位置。类似的还有istore_0、istore_2、istore_3,它们分别表示从操作数栈顶弹出一个元素,存放在局部变量表第0、2、3个位置。

由于局部变量表前几个位置总是非常常用,因此这种做法虽然增加了指令数量,但是可以大大压缩生成的字节码的体积。如果局部变量表很大,需要存储的槽位大于3,那么可以使用istore指令,外加一个参数,用来表示需要存放的槽位位置。

梦想很模糊,去追,它会渐变清晰。青春励志,奋斗下去别放弃。

相关文章

  • 出栈装入局部变量表指令

    出栈装入局部变量表指令用于将操作数栈中栈顶元素弹出后,装入局部变量表的指定位置,用于给局部变量赋值。 这类指令主要...

  • JVM 指令表

    常量入栈指令 局部变量值转载到栈中指令 将栈顶值保存到局部变量中指令 wide指令 通用(无类型)栈操作指令 类型...

  • Java字节码指令大全

    一、Java字节码指令大全 1.1.常量入栈指令 1.2.局部变量值转载到栈中指令 1.3.将栈顶值保存到局部变量...

  • 加载与存储指令概述

    1、作用 加载和存储指令用于将数据从栈帧的局部变量表和操作数栈之间来回传递。 2、常用指令 1、【局部变量压栈指令...

  • javap 指令集

    标签:floatintdouble局部变量longjavap指令集类型 栈和局部变量操作 将常量压入栈的指令 ac...

  • 局部变量压栈指令

    局部变量压栈指令将给定的局部变量表中的数据压入操作数栈。 这类指令大体可以分为: xload_(x为i、l、...

  • 4.状态寄存器&代码还原

    [TOC] 回顾-函数 指令:bl、ret 指令:pc、lr、sp 栈:函数开辟 ​ 存放局部变量、参数,寄存...

  • 汇编语言-第十章总结

    指令ret形式:ret说明:栈顶出栈到IP 指令retf形式:retf说明:先将栈顶出栈到IP,再将栈顶出栈到CS...

  • 【数据结构与算法】栈

    一、是什么 一种先进后出的线性表数据结构,只支持出栈和入栈操作 二、使用场景 函数调用栈(先定义的局部变量,最晚释...

  • javap生成的汇编语言指令表

    栈和局部变量操作 将常量压入栈的指令 aconst_null 将null对象引用压入栈iconst...

网友评论

      本文标题:出栈装入局部变量表指令

      本文链接:https://www.haomeiwen.com/subject/mgzobltx.html