Bonjour tout le monde,
J'aimerais mettre de l'assembleur inline dans mon code en C.
J'utilise Code::Block et mingw.
Voici un extrait de code qui ne veut pas fonctionner :
int tmp; // Variable globale pour pourvoir être utilisé dans le code asm
int fnt(char* s) {
int a;
for (int i = 0; i < strlen(s); i++) {
tmp = (unsigned char)s[i];
// Ce morceaux de code fonctionne (passage par un registre)
// asm(".intel_syntax noprefix \n"
// "mov eax, _tmp \n"
// "sar eax, 0x45 \n"
// "mov _tmp, eax \n"
// ".att_syntax \n"
// "\n");
// Pas celui la
// Le message d'erreur est le suivant : 1\Temp\ccOEaaaa.s:100: Error: ambiguous operand size for `sar'
asm(".intel_syntax noprefix \n"
"sar _tmp, 0x45 \n"
".att_syntax \n"
"\n");
a += tmp;
}
return a;
}
Une idée ?
Merci d'avance pour votre aide.
Afficher la suite