繁体   English   中英

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

[英]MIPS branch delay slot and bnez using same register

我有以下asm MIPS代码:

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

据我所知,“分支不等于零”永远不会跳转到loc_80031F58,因为v0 = 0,是吗?

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

一旦采用或不采用分支, $v0的值为零。 也就是说,在开始执行80031F58 (采用分支时)或80031DC0(不采用分支时)时, $v0将为0 ,但如果采用分支,则必须具有非零值以前的价值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM