Bonjour,
Je veux faire la même chose c-à-d lire le contenu d'un registre mais avec java!!
Quel package dois-je utiliser ??
et merci d'anace
Bonjour,
Je veux faire la même chose c-à-d lire le contenu d'un registre mais avec java!!
Quel package dois-je utiliser ??
et merci d'anace
Quoi utiliser: d'abord, le forum java...plus d chances d'avoir des réponses sur java que dans le forum C++
Par ailleurs, quel intérêt y'a t'il (en C++ aussi d'ailleurs) à lire le contenu d'un registre du CPU? Tu codes ta logique, sauf cas trèès particulier (s'interfacer avec de l'assembleur?) j'ai du mal à voir l'intérêt: tu codes ta logique, et le compilo (et en java la JVM) se débrouille tout seul avec le bas niveau du CPU.
Si on parle d'un registre de PERIPHÉRIQUE, là par contre ça a un sens.
Lire le contenu d'un registre...certes, mais lequel?
En général, la réponse est: non supporté.
Il te faut une classe avec une méthode native implémentée par une librairie native.
EDIT: en supposant, bien entendu, qu'on parle bien d'un registre de périphérique, parce que sinon, en java, cela n'a aucun sens...
Slt,
Les registres internes du MP (registres de données appelés aussi accumulateurs) sont utilisés pour sauvegarder les résultats après une opération de ALU, ou les données chargés a partir de la mémoire... L’architecture du système définie la taille (8 bits, 16 bits...), le nom ou la fonction d'un registre (peut ou non être utilisé comme registre d'adresse pour chargement a partir de la mémoire, peut ou non être utilisé comme registre condition...) mais aussi le nombre de registres, c'est la raison pour la quelle le jeu d'instruction assembleur change d'une architecture a une autre.
En changeant d'architecture, ces valeurs changent, et vue qu'un programme JAVA peut être exécuté sur différentes architectures, on ne peut spécifier a une méthode JAVA de manipuler un tel ou tel registre du CPU vu qu'il peut y avoir plusieurs architectures
C'est possible en C ou en C++, car un programme écrit avec ces langages sera exécuté sur une seule et même architecture
De plus, les langages de haut niveau ont été défini pour ne pas avoir a manipuler directement des registres, ou a connaitre architecture sur la quelle tourne l'application, le compilateur se charge de faire la traduction en langage assembleur.
Bon courage
En réalité pour le faire en C ou en C++ il faut inclure de l'assembleur dans ton source sinon tu ne controles RIEN car c'est l'affaire du compilateur.
Par ailleurs, bien que le code BINAIRE généré par le compilateur soit spécifique à une architecture, du point de vue du source C++ le CPU est invisible. Justement car on veut pouvoir compiler sur plusieurs architectures (il faut s'adapter aux différentes API système, mais en première analyse le CPU on s'en fiche). Cette transparence est cassée si on s'amuse à mettre de l'assembleur, donc à moins d'avoir une bonne raison de le faire on s'en dispense. Et c'est très rare d'avoir une bonne raison de tripatouiller le CPU, à part dans certains cas:
-> code de bas niveau du noyau de l'OS
-> jeux d'instructions étendues pour les applications genre multimédia (et encore, il y a des libs pour ça qui encapsulent le code bas niveau)
Tu pourrais peut-être jeter un coup d'oeil à cette lib
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager