[Résolu] [inline asm] erreur...
Bonjour
Je sais pas exactement si mon pb vient de VC++ ou d'autre chose...enfin on va voir
Pour une raison d'optimisation, je veux écrire une fonction d'effacage d'un tampon en asm (inline).
Voici ce que j'ai pondu :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| void __fastcall ClearBuffer2(void* buffer, int size)
{
_asm {
mov eax,buffer
mov ecx,size
loop_:
mov [eax],0
inc eax
dec ecx
jecxz loop_
ret
}
} |
Alors plusieurs trucs :
1. j'ai une erreur à la compilation : "error C2400: inline assembler syntax error in 'second operand'; found 'newline'"
2. j'ai trouvé ca sur le net (pas la routine, mais comment faire de l'inline), et j'ai pas trouvé la signjification de '__fastcall' ni la différence entre '_asm' et '__asm'
3. je dois préciser que je ne connais pas le x86, j'ai choppé une table de référence des instructions, et, connaissant le principe de l'asm (je connais le z80), j'ai pondu ce truc.
Pourriez vous me dire d'où vient le pb ? de ma routine ? de la facon dont c'est identé ? d'une instruction illégale ?
merci