par souci de simplicité ill coller juste un exemple au lieu de mon code entier qui est un peu énorme. tout en portant mon code sur VC++ au lieu d'utiliser GCC, j'ai besoin de réécrire quelques fonctions d'assemblage en ligne qui reçoivent des pointeurs et sauvegardent des valeurs sur ces pointeurs.enregistrer en ligne asm valeur de registre au pointeur C, peut l'obtenir sur GCC mais pas VC
imaginer cpuid par exemple:
void cpuid(int* peax, int* pebx, int* pecx, int* pedx, int what){
__asm__ __volatile__("cpuid" : "=a" (*peax), "=b" (*pebx), "=c" (*pecx), "=d" (*pedx) : "a" (what));
}
qui vient travailler, il permettra d'économiser les valeurs sur les registres « retournés » par CPUID sur les pointeurs que je Transmis à la fonction.
peut-il être fait avec l'assembleur en ligne pour VC? jusqu'à la signature même fonction exacte, mais avec:
mov eax, what;
cpuid;
mov dword ptr [peax], eax;
etc
ne fonctionnera pas, Peax auront la même valeur qu'il avait avant d'appeler la fonction.
merci d'avance.