Re: Rotating through a four-bit nibble

"Jordan Bradford" <[email protected]>
Newsgroups gmane.comp.hardware.lego.robotics
Organization None
Message-ID <[email protected]>
In lugnet.robotics, Kevin L. Clague wrote:
> In lugnet.robotics, Jordan Bradford wrote:
>> In lugnet.robotics, Geoffrey Hyde wrote:
>>> 
>>> "Jordan Bradford" <[email protected]> wrote in
>>> message news:[email protected]...
>>>> In lugnet.robotics, Kevin L. Clague wrote:
>>>> Why in the world wouldn't the firmware support shifting? The hardware
>>>> <http://www.delorie.com/gnu/docs/binutils/as_236.html certainly does>.
>>>> 
>>>> Heh, using multiply and divide to simulate shifting is kind of backwards.
>>> 
>>> The problem is, multiplication and division to a binary CPU, as is the case
>>> here, is just a whole series of instructions.
>>> 
>>> Here is the basic principle explained, partway down the page:
>>> 
>>> http://www.evergreen.edu/biophysics/technotes/misc/bin_math.htm
>>> 
>>> A link to binary addition and subtraction, from HowStuffWorks article on
>>> binary (it's actually a framed link to a different site, may have to cut
>>> out the frame addition if it doesn't work properly), note how it
>>> essentially works the same as decimal multiplication/division - also
>>> partway down the page.
>>> 
>>> http://computer.howstuffworks.com/framed.htm?parent=bytes.htm&url=http://www.math.grin.edu/~rebelsky/Courses/152/97F/Readings/student-binary.html
>>> 
>>> Hope this helps you understand it better!  :)
> 
> Kev
>> 
>> Understand what better? Binary math? No problems with that!
> 
> Nice to hear from another bit twiddler....
> 
>> 
>> By "backwards" I meant that multiplication and division by powers of 2 are
>> usually changed to shift L/R by compilers. Also, I am amused that because
>> the firmware doesn't use the H8/300's shift instructions for whatever
>> reason, people are now trying to write software simulations of a trivial
>> hardware operation.
> 
> I do find it ironic that the firmware suports bitwise AND and OR, but not
> XOR, and also not shifts.  Gack!
> 
> Well, at least we're not having to use loops to add things to themselves to
> simulate multiplying by a power of two!

With that limitation we'd be creating a register (or Turing) machine simulator,
too. It would be interesting to see a real-world processor that only has
increment and decrement instructions.

I'm thinking the LEGO firmware doesn't support these other instructions because
the RCX language (and ROBOLAB [?], which I've never used) isn't likely to need
them, so they saved space by not including them.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.