Onehdá jsem se tady ptal, jak se správně zapisuje ASM rutina v tomto vývojovém "AmiDevCPP" prostředí. A protože žádná odpověď nepřišla, tak jsem dávám ukázku, která mě funguje. Možná to někomu někdy pomůže 
 
	
							
						
					
 Code:
	
	/*
 * - output byte for SDI write - D0=byte out
 */
UBYTE SPI_byte_out_xDCS_asm2 (UBYTE byte_out)
{
asm volatile (
                "lea    0xbfe101,%%a2\n"
                "moveq  #0x0F,%%d3\n"
                "moveq  #0x0E,%%d4\n"
                "moveq  #0x0D,%%d5\n"
                "moveq  #0x0C,%%d6\n"
                "move.b %[byte],%%d0\n"
                "moveq  #0x07,%%d1\n"      //prenos 8mi bitu
    ".ByteOut2:  btst   %%d1,%%d0\n"       //jaky je bit na D1 v bajtu D0
                "bne.b  .ByteOut3\n"       //je to 1
                "move.b %%d5,(%%a2)\n"     //MOSI=0
                "move.b %%d6,(%%a2)\n"
                "bra.b  .ByteOut4\n"
    ".ByteOut3:  move.b  %%d3,(%%a2)\n"    //MOSI=1
                "move.b  %%d4,(%%a2)\n"
    ".ByteOut4:  subq    #0x01,%%d1\n"     //snizime pocitadlo bitu
                "bcc.b   .ByteOut2\n"      //a jedem dalsi
        :
        : [byte] "d"(byte_out)
        : "d0" , "d1"
        );
}