【发布时间】:2025-11-28 19:45:01
【问题描述】:
在讲座中,我们的教授说在分支中使用bne而不是使用beq是有原因的(让我们自己弄清楚),如下图所示。
if ( i == j )
i++ ;
j-- ;
编译成
bne $r1, $r2, L1 # branch if ! ( i == j )
addi $r1, $r1, 1 # i++
L1: addi $r2, $r2, -1 # j--
另外,in this link,也暗示了在 MIPS 程序集中以 否定 方式实现条件分支是一个约定。我最好的选择是,它是为了保持普通情况简单 - 因此快速 - 因为直观地说,如果我们检查是否相等,那么我们会期望它更有可能变得相等,因此当它是 不相等。我想我只是努力使它合理,但我仍然无法区分在beq 或bne 中实现它的核心区别。如果有人解释原因,我将不胜感激。
【问题讨论】:
标签: assembly mips branch-prediction