Téléchargement
illégal
Posez votre question Signaler

Executer une instruction native C, ASSEMBLEUR

altivex11 - Dernière réponse le 9 juin 2005 à 19:34
Bonjour à tous,

un JITC (Just-In-Time Compiler) traduit des instructions en language bytecode (ex. JAVA ou MSIL du .NET) vers des instructions native du processeur (x86 par exemple).

Mais comment faire pour executer ("fetch") dynamiquement ces instructions x86 nouvellement crées par le JITC sans crée un fichier .EXE, ou ELF ?

Exemple : il y a un bytecode

IF X=0 THEN GOTO 2...

Qui serait traduit en assembleur par :

CMP [ZoneMemoireX], 0
JE 099h ; (autre segment du code)

Imaginons que le JITC stocke l'instruction traduite dans un tableau

//opcode 32bits pour x86 car sizeof(char)*4=8*4 =32
char InstructionsNative[NbInstructsProg][4]

Maintenant qu'est-ce que je pourrais faire pour dire au processeur
d'executer InstructionsNative[vProgramCounter] ?

merci
Lire la suite 

Executer une instruction native C, ASSEMBLEUR »

2 réponses
Réponse
+0
moins plus
salut,
et bien c'est pas comme ça que ça marche,
un tableau est stocké en segment de données. le problème, est que les systèmes récents (windows, linux, etc.. avec l'architecture X86) travaillent en mode protégé, qui n'authorise l'execution d'instructions que dans un segment de code.
si tu veux executer un code créer en temps réel, tu doit allouer de la mémoire en lecture/ecriture avec les droits d'execution (avec les fonctions bas niveau de l'OS sur lequel tu travaille) et tu lance ces instructions comme un nouveau thread de ton programme (appel inter-thread, aussi nécessite un appel de fonctions bas niveaux de ton OS)

dis nous ce que tu désire réaliser exactement, on pourra mieux t'aider.
@*
Ajouter un commentaire
Réponse
+0
moins plus
rebonjour :
mon but étais d'essayer de programmer un JITC (just in time compiler)...
Ajouter un commentaire
Ce document intitulé « Executer une instruction native C, ASSEMBLEUR » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?