Yahoo Groups archive

AVR-Chat

Index last updated: 2026-04-28 22:41 UTC

Message

Re: [AVR-Chat] Re: Challenge

2005-06-09 by James Hatley

Roll through carry.

Jim

----- Original Message ----- 
From: "Ralph Hilton" <ralph@ralphhilton.org>
To: <AVR-Chat@yahoogroups.com>
Sent: Thursday, June 09, 2005 9:35 AM
Subject: Re: [AVR-Chat] Re: Challenge


> On Thu, 09 Jun 2005 11:21:50 -0500 you wrote:
>
> >
> >>
> >>It appears to require 6 shifts, six ANDs, and 5 ORs... seems unlikely
> >>it would be faster than the "straightforward" implementation?  It looks
> >>like a case of someone trying to be clever after they learned why a
> >>quicksort is better than something like a bubble sort (what he does is
> >>swap bits 0/1, 2/3, 4/5, 6/7... then 0-1/2-3, 4-5/6-7, and finally 0-
> >>3/4-7).  The problem is that with only 8 bits there's not any speedup
> >>yet that I can see -- just as smart general purpose sorting routines
> >>will revert to something like a bubble sort of lists of less than, say,
> >>10 items!
> >
> >Unless someone pops up from left field here with a new solution, I'm
> >going to say that we have a couple of nice solutions now, and call
> >this one "done".
> >
> >The table lookup is, somewhat surprisingly efficient, other than on
> >code space, especially when the table can be located on an even page.
> >Interestingly enough, I think it executes in the equivalent of one
> >instruction on the PIC.  VBG!
> >
> >The external loopback is fun, if you have the pins available.
> >
> >That's the point of challenges like this, to encourage "out of the
> >box" thinking and explore ideas.
> >
> >
> >
> >So, anyone want to propose a new little problem?
>
> This one is known but can prove a puzzler if one doesn't know it.
>
> How do you swap the contents of 2 registers without using any other
registers or
> stack?
> --
> Ralph Hilton
> http://www.ralphhilton.org
> C-Meter: http://www.cmeter.org
> FZAOINT http://www.fzaoint.net
>
>
>
> Yahoo! Groups Links
>
>
>
>
>
>
>

Attachments

Move to quarantaine

This moves the raw source file on disk only. The archive index is not changed automatically, so you still need to run a manual refresh afterward.