gpt4 book ai didi

assembly - 确定数字的符号

转载 作者:行者123 更新时间:2023-12-02 20:16:32 24 4
gpt4 key购买 nike

我只是尝试使用 MIPS 汇编分支到给定数字为正或负的不同代码段,这是应该执行此操作的短段:

lbu $4, digit
and $5, $4, 0x80
srl $5, $5, 31
bgt $5, 0, positive
b negative

该数字成功位于 $4 中,我将其与 1 及其后面的所有零进行按位与,以获得第一位是 1 还是 0,然后我右移 31 位,使其位于最后一个位置,然后我检查它是否大于0,如果是,则分支为正,否则分支为负。

我确信我在某个地方搞乱了逻辑,而且我也不确定我是否可以像这样使用 0 (在 bgt 中),或者我是否应该使用 $0

有什么想法吗?谢谢!

最佳答案

我认为你正在将你的字节移出图片。使用你的方法,你应该将其移动 7 位,而不是 31 位。但是...

根据 http://www.ece.umd.edu/~manoj/759M/MIPSALM.html,您可以使用 lb,而不是使用 lbu 。这将复制您正在加载的字节的第 7 位的值,并将其放入目标寄存器的第 8-31 位中。然后你可以使用bgez来做分支。

lb $4, digit
bgez $4, positive
b negative

但是我一生中从未编写过 MIPS 汇编程序的字节,您也许应该对这个答案持保留态度。祝你好运!

关于assembly - 确定数字的符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13591023/

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