J'ai essayé de lire CPUID en utilisant l'assembleur en C++. Je sais qu'il y a une fonction pour cela, mais je veux la voie asm. Donc, après que CPUID est exécuté, il doit remplir les registres eax, ebx, ecx avec une chaîne codée ASCII. Mais mon problème est, puisque je peux dans asm adresse seulement plein, ou moitié registre eax, comment briser ce 32 bits en 4 octets. J'ai utilisé ceci:C++ word to bytes
#include <iostream>
#include <stdlib.h>
int main()
{
_asm
{
cpuid
/*There I need to mov values from eax,ebx and ecx to some propriate variables*/
}
system("PAUSE");
return(0);
}
Cette question telle quelle peut être mal interprétée comme "Comment puis-je programmer dans l'assemblage sans apprendre l'assemblage?" en fonction de ce que vous avez demandé. La réponse évidente est pour vous d'apprendre à faire _x86 inline assembly_ pour votre environnement préféré (Visual C++, GCC sur x86 Linux, etc.). – mctylr
Pourquoi? Je connais mieux l'assemblage que C. Cette implémentation _asm {} fonctionne bien dans Visual C++. Je ne sais pas comment diviser ces 4 octets en 4 caractères en utilisant C++. – Vit