比较条件跳转指令

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了比较条件跳转指令相关的知识,希望对你有一定的参考价值。

参考技术A 比较条件跳转指令类似于比较指令和条件跳转指令的结合体,它将比较和跳转两个步骤二合为一。

这里指令有:if_icmped、if_icmpne、if_icmpgt、if_icmple、if_icmpge、if_acmpeq和if_acmpne。其中指令助记符加上"if_"后,以字符"i"开头的指令针对int型整数操作(也包括short和byte类型),以字符"a"开头的指令表示对象引用的比较。

具体说明:

这些指令都接收两个字节的操作数作为参数,用于计算跳转的位置。同时在执行指令时,栈顶需要准备两个元素进行比较。指令执行完成后,栈顶的这两个元素被清空,且没有任何数据入栈。 如果预设条件成立,则执行跳转,否则,继续执行下一条语句。

JVM进阶之字节码指令解析(下篇)

一、控制转移指令

1.比较指令

  • 比较指令的作用是比较栈顶两个元素的大小,并将比较结果入栈。
  • 对于double类型的数据,指令有dcmpg、dcmpl,由于double类型的数值有可能是NaN,所以需要两种处理方式。
    • 这两个指令都从栈中弹出两个操作数,并将它们做比较,然后将比较的结果压入操作数栈。设桟顶的元素为v2,栈顶顺位第2位的元素为v1。若v1 = v2,则压入0;若v1 > v2,则压入1;若v1 < v2则

以上是关于比较条件跳转指令的主要内容,如果未能解决你的问题,请参考以下文章

跳转指令及其跳转条件

多条件分支跳转指令

汇编多条件转移指令

ARM指令集——跳转指令

Android 逆向x86 汇编 ( call 子函数调用指令 | jmp 跳转指令 | lea 加载指令 | mov 数据传送指令 )

Android 逆向x86 汇编 ( call 子函数调用指令 | jmp 跳转指令 | lea 加载指令 | mov 数据传送指令 )