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 : Sélectionner tout - Visualiser dans une fenêtre à part
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