Java虚拟机指令由一个字节的操作码或操作数组成。大部分指令都没有支持byte、short、char和boolean的类型。编译器会在编译期或运行期转换为带符号扩展的int类型处理。
加载和存储指令用于将数据在栈帧中的局部变量表和操作数栈之间来回传数据。
以下指令t代表i、l、f、d、a,n代表局部变量表的slot位置。
- 将一个局部变量加载到操作栈:tload_.
- 将一个数值从操作数栈存储到局部变量表:tstor_.
- 将一个常量加载到操作数栈:bipush、sipush等
- 扩充局部变量表的访问索引的指令:wide
用于对两个操作数栈上的值进行运算,并把结果重新存入到操作帧顶。
用于两种类型数据显示转换。包括i2b、i2c 、l2i、 f2i、d2i等
athrow
虚拟机用monitorenter和monitorexit两条指令支持Synchronized关键字语义。
原文:http://blog.csdn.net/csujiangyu/article/details/44538431