Question

How can i change least significant bit in a register in Mips?
In another post How to get LSB bit in MIPS? it saws how to get it but i want to change it.

Was it helpful?

Solution

The following one line should do it:

xori $t0, $s0, 1

Explained: the contents in $s0 contains zeros and ones, while the immediate value has zeros and a one in the LSB. Whenever the LSB is 0, it is xored with 1 and outputs a 1. Whenever it is 1, it is xored with 1 and outputs a 0. The remaining bits will output a 1 if they are 1 and a 0 if they are 0 because they are being xored with 0, thus preserving their state.

OTHER TIPS

You can use this code:

li $t3,1
xor $t0,$s0,$t3
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top