Hi Maarten!
".-2“ is a good idea...I tried "-5" (without the dot), which resulted in a 
weird linker error...but ".-2" compiles and links fine and produces good code...
"2$" cannot work, if u have to wait twice within a macro, that uses this USBp 
macro (e. g. when u want to poll before a read).
a label that is only valid within the macro would be nice to have, because 
counting the bytes of instructions is error prone... :)
Thx.
ByeArne    Am Samstag, 17. März 2018, 12:54:48 UTC hat Maarten Brock 
<sourceforge.br...@dse.nl> Folgendes geschrieben:  
 
 Hello Arne,

I believe you can use a relative offset like this:
    mov A,(USB0ADR)
    jb (ACC+USBBUSY), .-2  ; . = address of this instruction

Or you can use reusable symbols below 100 (SDCC uses above 100)
2$: mov A,(USB0ADR)
    jb (ACC+USBBUSY), 2$  ; . = address of this instruction

Have look in the amslnk.txt documentation 1.3.3 and 1.3.4.

Maarten

> Hi!
> How can I jump within a macro in sdas8051?
>
> I do it like this now:
> .macro USBp
>  mov A, (USB0ADR)
>  .byte 0x20 , 0xE7 , 0xFB ; jb (ACC+USBBUSY), {to start of macro}
> .endm
>
> but it feels like there should be a different notation... :)
>
> Thx.
>
> Bye
> Arne



------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Sdcc-user mailing list
Sdcc-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sdcc-user
  
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Sdcc-user mailing list
Sdcc-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sdcc-user

Reply via email to