Jvm(44),指令集----运算指令

Posted qingruihappy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jvm(44),指令集----运算指令相关的知识,希望对你有一定的参考价值。

运算或算术指令用于对两个操作数栈上的值进行某种特定运算,并把结果重新存入到操作栈顶。大体上算术指令可以分为两种:对整型数据进行运算的指令与对浮点型数据进行运算的指令,无论是哪种算术指令,都使用Java虚拟机的数据类型,由于没有直接支持byte、 short、char和boolean类型的算术指令,对于这类数据的运算,应使用操作int类型的指令代替。整数与浮点数的算术指令在溢出和被零除的时候也有各自不同的行为表现,所有的算术指令如下。加法指令:iadd、ladd、fadd、dadd。减法指令:isub、lsub、fsub、dsub。乘法指令:imul、lmul、fmul、dmul。除法指令:idiv、ldiv、fdiv、ddiv。求余指令:irem、lrem、frem、drem。取反指令:ineg、lneg、fneg、dneg。

位移指令:ishl、ishr、iushr、lshl、lshr、lushr。

按位或指令:ior、lor。按位与指令:iand、land。按位异或指令:ixor、lxor。局部变量自增指令:iinc。

比较指令:dcmpg、dcmpl、fcmpg、fcmpl、lcmp。 public class Demo5 {

    public int add(int a, int b) {

         int c = a + b;

         int d = a - b;

         int e = a * b;

         int f = a / b;

         int g = a % b;

         int h = c + d + e + f + g;

         return 1 + 1;

    }

}

技术分享图片

首先我们知道64位操作系统的    大的操作数栈是2 下面我们来接着分析他们的过程。

 

技术分享图片

以上是关于Jvm(44),指令集----运算指令的主要内容,如果未能解决你的问题,请参考以下文章

JVM指令集(指令码助记符功能描述)(转)

jvm原理(35)基于栈的指令集与基于寄存器的指令集详细比对&执行栈指令集实例剖析

jvm原理(35)基于栈的指令集与基于寄存器的指令集详细比对&执行栈指令集实例剖析

JVM指令集(指令码助记符功能描述)

jvm中篇-05-字节码指令集与解析

Jvm(47),指令集----控制转移指令