MIPS...detecting least significant bit.
Zaphod Beeblebrox
zbeeble at gmail.com
Thu Oct 9 19:47:38 UTC 2008
On Thu, Oct 9, 2008 at 11:09 AM, Izzy K. <rjdfhorn_06 at yahoo.com> wrote:
>
> I'm working on an assignment and have reached a road block. If I have a 16
> bit integer like:
>
> 0000 0000 0000 0100
>
> how would I check to see what the value in the LEAST significant bit is?
> Basically, how would I check to see if the least significant bit is 0 or 1?
> How would I code it? I am a beginner at MIPS...is there a simple
> instruction
> that detects this? Please help me.
My first guess at the solution (and forgive me for not knowing the MIPS
instruction set --- so I'm just speaking in general machine language terms)
is to loop while left shifting and testing with an AND 0x01. You need to
count the loops to know when you encountered the first bit set. Now...
often the result of the left shift sets a status register based on the
previous value of the 0 bit (carry or underflow?) ... so your loop might be
an instruction shorter --- not requiring the AND --- if this is the case.
Now... this all seems rather fundamental. Even the brute force case of
AND'ing with a bunch of values might pipeline well. Are you sure you should
be taking this course?
More information about the freebsd-mips
mailing list