访问MIPS中的各个位

Nic*_*len 0 algorithm assembly bits maze mips

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

在程序中,寄存器$ t9是一个32位数字,用于存储有关穿过迷宫的汽车位置的信息,包括列和行位置,这是我需要隔离的.基本上,我需要知道的是如何使用/隔离那些特定的位.

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

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

谢谢!

Sev*_*yev 6

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

要获得位23-16,向右移动16,然后向右移动0xff.

你会为此找出MIPS命令吗?

  • 你不需要屏蔽8位32位右移24位的值 - 当使用逻辑右移时,因为那些高24位的数据填充为零. (2认同)