4
我正在使用MIPS(QtSpim)将Big Endian中的32位单词转换为Little Endian。我在下面显示的是检查和更正。不过,我想知道还有哪些方法可以让我进行转换。我虽然只是使用旋转和移位,但我没有设法做到这一点,没有逻辑操作。使用MIPS而没有逻辑操作的Big Endian到Little Endian?
所以我的问题是,它可以做到没有逻辑操作?
li $t0,0x12345678 # number to be converted supposed to be in $t0
rol $t1,$t0,8
li $t2,0x00FF00FF # $t2 contains mask 0x00FF00FF
and $t3,$t1,$t2 # byte 0 and 2 valid
ror $t1,$t0,8
not $t2,$t2 # $t2 contains mask 0xFF00FF00
and $t1,$t1,$t2 # byte 1 and 3 valid
or $t3,$t3,$t1 # little endian-number in $t3
非常感谢您的支持。我已经接受你的答案。最后一个是/否的问题,这只能通过逻辑运算来解决吗? – EnexoOnoma
@Kaoukkos:我相信你不能仅仅使用**逻辑运算来解决它,因为你需要一些手段来移动(移位)字节。 – gusbro