访问 MIPS 中的各个位

Accessing individual bits in MIPS

我正在用 MIPS 编写程序,使用左手法则算法解决迷宫问题。我已经编写了我的算法,但我需要找到一种方法来跟踪我已经访问过的迷宫中的空间,以便我可以找到 "best" 和最直接的解决方案来解决迷宫问题。

在程序中,寄存器$t9是一个32位的数字,里面存放的是小车穿越迷宫的位置信息,包括列位置和行位置,这是我需要隔离的。基本上,我需要知道的是如何工作 with/isolate 这些特定位。

第 31-24 位是一个 8 位数字,表示 2 的补码中的行 第 23-16 位是一个 8 位数字,表示 2 的补码中的列

tl;dr 我只需要从位于 MIPS 中 $t9 的 32 位数字中提取前 8 位和接下来的 8 位

谢谢!

要获得位 31-24,执行逻辑右移 (SRL) 24。剩余的数字将对应于这些位的值,被解释为 8 位整数。

要获得位 23-16,右移 16,然后与 0xff。

你会找出 MIPS 命令吗?