Inline ASM in preproc-function



  • Hi,

    ich wundere mich, warum folgendes gut funktioniert:

    __asm
    {
       mov al,x
       xchg al,y
       mov x,al
    }
    

    folgendes aber nicht:

    #define  ASM_XCHG__8(x,y)		\
    		__asm					\
    		{						\
    			mov al,x			\
    			xchg al,y			\
    			mov x,al			\
    		}
    uint8 x=0, y=1;
    ASM_XCHG__8(x,y);
    

    Das sieht vom Präprozessoroutput genau richtig aus bzw. wie obriges. Ich muß allerdings

    #define  ASM_XCHG__8(x,y)		\
    		__asm mov al,x			\
    		__asm xchg al,y			\
    		__asm mov x,al			
    uint8 x=0, y=1;
    ASM_XCHG__8(x,y);
    

    schreiben. Weiß jemand wieso?


Anmelden zum Antworten