gpt4 book ai didi

c - 这两个来自 C if 语句的 MIPS 转换是否等效?

转载 作者:太空宇宙 更新时间:2023-11-04 08:10:37 25 4
gpt4 key购买 nike

这些是否遵循 C 等同的 MIPS 翻译?如果不是,请详细解释。我的教授说版本一是正确的。如果我像第二版一样编写指令,即使它们产生相同的输出,我也不会得到标记。她没有解释原因。提前谢谢你!

C 代码

if (i==j) {
f = g + h ;
}
else
f = g -h ;

MIPS 第一版:

        bne $s3, $s4, Else
add $s0, $s1, $s2
j Exit
Else: sub $s0, $s1, $s2
Exit:...

MIPS 第二版:

         beq $s3, $s4, Else
sub $s0, $s1, $s2
j Exit
Else: add $s0, $s1, $s2
Exit:...

最佳答案

当 i 不等于 j 时,您转到 else 语句,因此使用 bne(分支不等于)。你是第二个 MIPS 描述的是代码:

if (i!=j) {
f = g - h ;
}
else
f = g + h ;

所以它是等价的,但是你的第二个 MIPS 代码没有描述第一个 if-else 代码,它描述了等价的东西,但它不是正确的翻译。

关于c - 这两个来自 C if 语句的 MIPS 转换是否等效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39815834/

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