gpt4 book ai didi

assembly - MIPS 分支延迟槽和 bnez 使用相同的寄存器

转载 作者:行者123 更新时间:2023-12-02 21:37:45 35 4
gpt4 key购买 nike

我有以下 asm MIPS 代码:

80031DB8  bnez    $v0, loc_80031F58
80031DBC move $v0, $zero

据我了解,“分支不等于0”永远不会跳转到loc_80031F58,因为v0 = 0,对吗?

最佳答案

没有。比较时,$v0 具有执行 80031DB8 之前的任何值。比较后,当延迟槽执行并且开始进行跳转时,$v0 被写入值0

一旦分支被采用或不被采用,$v0 的值为零。也就是说,在开始执行 80031F58(当分支被采用时)或 80031DC0(当分支未被采用时)时,$v0 将是 0,尽管如果分支被采用,它之前必须有一个非零值。

关于assembly - MIPS 分支延迟槽和 bnez 使用相同的寄存器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6903709/

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