美文网首页
条件跳转指令

条件跳转指令

作者: Shaw_Young | 来源:发表于2021-09-08 18:28 被阅读0次

条件跳转指令通常和比较指令结合使用。在条件跳转指令执行前,一般可以先用比较指令进行栈顶元素的准备,然后进行条件跳转。
条件跳转指令有:ifeq、iflt、ifle、ifne、ifgt、ifge、ifnull、ifnonnull。这些指令都接收两个字节的操作数,用于计算跳转的位置(16位符号整数作为当前位置的offset)。
它们的统一含义为:弹出栈顶元素,测试它是否满足某一条件,如果满足条件,则跳转到给定位置。

具体说明:

指令 描述
ifeq 当栈顶int类型数值等于0时跳转
ifne 当栈顶int类型数值不等于0时跳转
iflt 当栈顶int类型数值小于0时跳转
ifle 当栈顶int类型数值小于等于0时跳转
ifgt 当栈顶int类型数值大于0时跳转
ifge 当栈顶int类型数值大于等于0时跳转
ifnull 为null时跳转
ifnonnull 不为null时跳转

注意:

1.与前面运算规则一致:

  • 对于boolean、byte、char、short类型的条件分支比较操作,都是使用int类型的比较指令完成。
  • 对于long、float、double类型的条件分支比较操作,则会先执行相应类型的比较运算指令,运算指令会返回一个整型到操作数栈中,随后再执行int类型的条件分支比较操作来完成整个分支跳转。

2.由于各类型的比较最终都会转为int类型的比较操作,所以Java虚拟机提供的int类型的条件分支指令是最为丰富和强大的。

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

相关文章

  • 条件跳转指令

    条件跳转指令通常和比较指令结合使用。在条件跳转指令执行前,一般可以先用比较指令进行栈顶元素的准备,然后进行条件跳转...

  • 比较条件跳转指令

    比较条件跳转指令类似于比较指令和条件跳转指令的结合体,它将比较和跳转两个步骤二合为一。 这里指令有:if_icmp...

  • Cortex-M0指令集——B

    跳转指令: (1)可条件执行的跳转指令 B 此指令在计算跳转地址时...

  • 条件跳转指令总结

    JMP无条件跳转 JE或者JZ结果为0则跳转观察零标志位Z, Z为1,跳转执行,否则不跳转 JNE或者JNZ结果不...

  • 无条件跳转指令

    目前主要的无条件跳转指令为goto。指令goto接收两个字节的操作数,共同组成一个带符号的整数,用于指定指令的偏移...

  • Arm指令学习

    持续更新文章... 0:后缀学习 1:寻址方式 1:指令条件码 2:ARM指令 2:跳转指令 3:数据存储指令 4...

  • 多条件分支跳转指令

    多条件分支跳转指令是专为switch-case语句设计的,主要有tableswitch和lookupswitch。...

  • ARM 汇编指令学习:[2]ARM指令集

    ARM 汇编指令学习:[2]ARM指令集 一、跳转指令 1、 B(跳转指令)及BL(带返回跳转指令) 其中: L决...

  • 处理器结构--分支预测(Branch Prediction)

    背景 条件分支指令通常具有两路后续执行分支。即不采取(not taken)跳转,顺序执行后面紧挨JMP的指令;以及...

  • Cortex-M0指令集——BLX

    带返回链接的无条件跳转指令: 在指定的地址和指令上调用子程序,ARMv6-M只支持Thumb状态。试图更改指令执行...

网友评论

      本文标题:条件跳转指令

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