gpt4 book ai didi

assembly - 汇编/机器代码中相等的分支

转载 作者:行者123 更新时间:2023-12-04 18:14:17 29 4
gpt4 key购买 nike

使用有什么区别:

c.eq.s    $1, $2
bc1t L2

并使用:
beq $1, $2, L2

如果他们做同样的事情,为什么有两种分支方式?如果它们不同,那么它们各自的好处是什么?

谢谢

编辑:我不知道“c.eq.s”是协处理器特定的。为了与第二组代码保持一致,我只写了 $1, $2 而不是 $f1, $f2。

最佳答案

bc1t如果数学协处理器条件位 1 为真,则指令简单地分支。如果两个寄存器相等,就是这种情况。如果值相等,则相当于简单地进行分支,beq ,但前提是这两种情况下寄存器实际上是相同的寄存器。

使用 MIPS 浮点协处理器,寄存器应该是 $f1/$f2c.eq.s指令,因此这两个指令将不等效。没见过$1/$2的用法在浮点指令中,除了那些在常规寄存器和协处理器之间移动数据的指令。

我认为以两步方式进行浮点条件分支的唯一方法。 IDT MIPS Microprocessor Family Software Reference Manual状态:

The FP test and branch instructions are separate. A test instruction compares two FP values and set the FPA condition bit accordingly (C in the FP status register); the branch instructions branch on whether the bit is set or unset.

关于assembly - 汇编/机器代码中相等的分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12024543/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com