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.
Asked
Active
Viewed 2,680 times
2
-
(1) Get the LSB using the code at that link. (2) Use the XOR function to flip that bit in the original value. It looks like that might be called something like `xori`. – j_random_hacker May 08 '14 at 02:20
-
Related: [How to get LSB bit in MIPS?](https://stackoverflow.com/q/2579574) shows copying a bit from one register to another. – Peter Cordes Jun 06 '21 at 01:28
2 Answers
3
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.

Master_Yoda
- 1,092
- 2
- 10
- 18
1