美文网首页
多条件分支跳转指令

多条件分支跳转指令

作者: Shaw_Young | 来源:发表于2021-09-14 11:24 被阅读0次

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

指令名称 描述
tableswitch 用于switch条件跳转,case值连续
lookupswitch 用于switch条件跳转,case值不连续

从助记符上看,两者都是switch语句的实现,它们的区别:

  • tableswitch要求多个条件分支值是连续的,它内部只存放起始值和终止值,以及若干个跳转偏移量,通过给定的操作数index,可以立即定位到跳转偏移量位置,因此效率比较高
  • 指令lookupswitch内部存放着各个离散的case-offset对,每次执行都要搜索全部的case-offset对,找到匹配的case值,并根据对应的offset计算跳转地址,因此效率较低

指令tableswitch的示意图如下图所示。由于tableswitch的case值是连续的,因此只需要记录最低值和最高值,以及每一项对应的offset偏移量,根据给定的index值通过简单的计算即可直接定位到offset。

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

相关文章

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

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

  • 多条件分支跳转指令

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

  • 条件跳转指令

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

  • 比较条件跳转指令

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

  • Cortex-M0指令集——B

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

  • 条件跳转指令总结

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

  • 无条件跳转指令

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

  • 芯片自我修养:存储指令

    在函数调用的场合,以及循环结构、分支结构的程序中经常会用到跳转指令。ARM指令集提供了B、BL、BX、BLX等跳转...

  • IF使用详解

    一, 格式 1.1 单分支语句结构 if [ 条件表达式 ]; then指令fi 1.2 双分支语句结构 if [...

  • Arm指令学习

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

网友评论

      本文标题:多条件分支跳转指令

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