There is the unelegant solution of counting how many instructions you want to jump, and use GOTO $+7, if you need to jump forward 7 instructions. Otherwise, use LOCAL variables, as below. ;+--------------------------------------------+ ;Ï MACRO DEFINITION Ï ;+--------------------------------------------+ Delay MACRO LOCAL Loop ;+--------------------------------------------+ ;Ï The magic lies in declaring the label as Ï clrf temp ;Ï a LOCAL label. Ï Loop ;Ï Ï decfsz temp,f ;Ï Ï goto Loop ;Ï Ï ;Ï Ï ;+--------------------------------------------+ ENDM Main ;+--------------------------------------------+ ;Ï MAIN PROGRAM Ï ;+--------------------------------------------+ ;+--------------------------------------------+ Delay ;Ï Called the first time - Loop = 0x01 Ï nop ;Ï Ï Delay ;Ï Called the second time - Loop = 0x05 Ï ;+--------------------------------------------+ Assemble it and see. (Include the ORG and variable definitions yourself!) At 07:56 AM 12/19/96 +0300, you wrote: >is there a way to goto in a macro? , labels expanded every time into a new >address! > >or do I have to add to PC? >______________________________________________________________ > Name Osama ALASSIRY > Snail Mail P.O. Box 7900 Doha-Qatar > Web http://www.alassiry.com > Homepage http://www.alassiry.com/osama > Email osama@qatar.net.qa > osama@alassiry.com > > >*********************************************************** >This mail was sent by an evaluation version of WinProxy >See http://www.lanprojekt.cz/winproxy >*********************************************************** > > Jan van der Watt [i SAW Elvis. He sAt BETween mE anD BigFOOt on THE uFo.]