MIPS (QtSpim) を使用して、32 ビット ワードをビッグ エンディアンからリトル エンディアンに変換しています。以下に示すものは、チェック済みで正しいものです。ただし、他の方法で変換できることを知りたいです。私は回転とシフトを使用するだけでしたが、論理演算なしではそれを行うことができませんでした.
私の質問は、論理演算なしで実行できますか?
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