gnupic: Re: [gnupic] Question about macros in gpasm


Previous by date: 11 Feb 2005 04:58:25 +0000 Re: [gnupic] dsPIC support?, Craig Franklin
Next by date: 11 Feb 2005 04:58:25 +0000 Re: [gnupic] upgrading gpasm/gplink warnings to errors, Craig Franklin
Previous in thread:
Next in thread: 11 Feb 2005 04:58:25 +0000 Re: [gnupic] Question about macros in gpasm, David Willmore

Subject: Re: [gnupic] Question about macros in gpasm
From: Craig Franklin ####@####.####
Date: 11 Feb 2005 04:58:25 +0000
Message-Id: <420C3BFE.6000802@users.sourceforge.net>

David Willmore wrote:

>Hello, all!
>
>I've finally been tempted to use macros in some code--
>lots of tedious repitition that I don't mind letting the
>preprocessor do.  But, the final code is very hard to
>read and debug.
>
>I tried to solve things with careful use of EXPAND and
>NOEXPAND, and got partial results.  NOEXPAND would make
>the listing of the macro expansion immediately terminate--
>including the NOEXPAND keyword.  This is good.  EXPAND,
>unfortunately, included itself when it restarted listing
>of macto expansion--not good.  Who wants a file full of
>"EXPAND" statements.
>
>The second issue is that when expanded into the list file,
>values in macros don't appear as real values--the assembly
>is right next to them, so they were concrete values.
>
>Is there any way to have a macro like:
>
>clrvar  macro   base, len
>        clrf    base
>        IF ((len-1) > 0)
>          clrvar (base+1), (len-1)
>        endm
>
>That when used will look in the listing like:
>               00007 CBLOCK  0x20
>               00010         ta:4                    ; 32 bit temporary
>               00014 ENDC
> 
>               00043         clrvar  ta,4
>0011 01A6          M         clrf    ta
>0012 01A7          M         clrf    ta+1
>0013 01A8          M         clrf    ta+2
>0014 01A9          M         clrf    ta+3
>
>Or similar?  Because the current:
>               00043         clrvar  ta,4
>                   M         EXPAND
>0011 01A6          M         clrf    base
>                   M         EXPAND
>0012 01A7          M         clrf    base
>                   M         EXPAND
>0013 01A8          M         clrf    base
>                   M         EXPAND
>0014 01A9          M         clrf    base
>
>Isn't horribly useful.  Is there a pretty way to do this
>other than symbolically dissassembling my code and using
>that?
>
>  
>

Add a feature request on sourceforge.  Someday I might get to it.  I 
doubt it will be anytime soon.

>Oh the CBLOCK was altered to remove other variables not important
>in this chunk of code, so don't worry that the address of 'f' in
>the clrf instructions doesn't point to 0x20.
>
>Thanks, everyone!
>
>Cheers,
>David
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: ####@####.####
>For additional commands, e-mail: ####@####.####
>
>
>  
>


Previous by date: 11 Feb 2005 04:58:25 +0000 Re: [gnupic] dsPIC support?, Craig Franklin
Next by date: 11 Feb 2005 04:58:25 +0000 Re: [gnupic] upgrading gpasm/gplink warnings to errors, Craig Franklin
Previous in thread:
Next in thread: 11 Feb 2005 04:58:25 +0000 Re: [gnupic] Question about macros in gpasm, David Willmore


Powered by ezmlm-browse 0.20.