深入理解Java虚拟机——运算指令

Posted 小志的博客

tags:

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

目录

一、运算指令的概述

  • 运算或算数指令用于对两个操作数栈上的值进行某种特定运算,并把结果重新存入到操作栈顶。
  • 大体上算数指令可以分为两种:对整型数据进行运算的指令与对浮点型数据进行运算的指令,无论哪种算术指令,都使用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 Test1
    	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;
    		return 1+1;
    	
    
    
  • 执行javac命令,编译成.class文件

  • 执行javap命令,分析.class字节码文件

以上是关于深入理解Java虚拟机——运算指令的主要内容,如果未能解决你的问题,请参考以下文章

深入理解Java虚拟机——异常处理指令

深入理解Java虚拟机——异常处理指令

深入理解java虚拟机字节码指令简介

深入理解Java虚拟机——控制转移指令

深入理解Java虚拟机——控制转移指令

深入理解Java虚拟机——同步指令