New problem:

Code:
void Audio_MixSound(int DestAddr, int SrcAddr, int MixLen, int LVolume, int RVolume)
{
_asm {
       mov      edi, DestAddr
       mov      ecx, MixLen
       mov      esi, SrcAddr
     }

SOUND_CYCLE :

_asm {
       movsx    eax, word ptr [esi]
       imul     LVolume
       sar      eax, 16
       mov      bx, word ptr [edi]

       add      ax, bx
       jo       LEFT_CHECK_OVERFLOW
       mov      word ptr [edi], ax
       jmp      CYCLE_RIGHT
 }
LEFT_CHECK_OVERFLOW :
__asm {
       cmp      bx, 0
       js       LEFT_MAX_NEGATIVE
       mov      ax, 32767
       mov      word ptr [edi], ax
       jmp      CYCLE_RIGHT
}
LEFT_MAX_NEGATIVE :
__asm  mov      word ptr [edi], -32767




CYCLE_RIGHT :
__asm {
       movsx    eax, word ptr [esi]
       imul     dword ptr RVolume
       sar      eax, 16
       mov      bx, word ptr [edi+2]

       add      ax, bx
       jo       RIGHT_CHECK_OVERFLOW
       mov      word ptr [edi+2], ax
       jmp      CYCLE_CONTINUE
}
RIGHT_CHECK_OVERFLOW :
__asm {
       cmp      bx, 0
       js       RIGHT_MAX_NEGATIVE
       mov      word ptr [edi+2], 32767
       jmp      CYCLE_CONTINUE
}
RIGHT_MAX_NEGATIVE :
__asm  mov      word ptr [edi+2], -32767

CYCLE_CONTINUE :
__asm {
       add      edi, 4
       add      esi, 2
       dec      ecx
       jnz      SOUND_CYCLE
}
My compiler (MinGW) doesn't recognize _asm; What linker/ compiler command do I need for this...?