Flux rss
Rechercher : dans
Par :

Executer une instruction native C, ASSEMBLEUR

altivex11, le mardi 7 juin 2005 à 21:43:36 
 Signaler ce message aux modérateurs

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

Configuration: GNU: GCC

1

sam3000, le mardi 7 juin 2005 à 22:34:57

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.
@* Invité bienvenue, Membre t'es un(e) ami(e),
Profil rempli on t'aime, tu parle SMS tu vas dehors!

Répondre à sam3000

2

 altivex11, le jeudi 9 juin 2005 à 19:34:59

Rebonjour :
mon but étais d'essayer de programmer un JITC (just in time compiler)...

Répondre à altivex11
Les instructions en c et c++ (Résolu) Bonjour, je recherche toutes les instructions en c et en c++ une personne connait un site où je pourrai l'avoir est-ce qu'il existe un équivalent du turbo pascal en c ou c++ car lui il intègre un onglet "help" qui nous renseignent des bibliothèques où... www.commentcamarche.net/forum/affich-4386669-les-instructions-en-c-et-c
[programme c] comment exécuter un programme c bonjour je suis un débutant sur linux et j aimerais savoir comment on peut exécuter un programme c après l avoir taper et compiler? Merci d avance à tous ceux ki m aideront dans mon apprentissage www.commentcamarche.net/forum/affich-2091609-programme-c-comment-executer-un-programme-c
Executable avec Borland C++ Builder 6 Bien le bonjour messieurs dames, J'irais droit au but : Comment on fait un executable avec Borland C++ Builder 6 ? Je veux que cet executable puisse se lancer sur toutes les machines ! Celles qui n'ont pas BCB 6, windows 2000, windows 98... Il faut... www.commentcamarche.net/forum/affich-697212-executable-avec-borland-c-builder-6
La compilation et les modules en C et en C++Cet article a pour vocation d'introduire les notions de bases de la compilation en C et en C++ et de la programmation modulaire. Il permet de mieux comprendre les messages d'erreur du compilateur. Les notions abordées ici sont indépendantes du... www.commentcamarche.net/faq/sujet-14440-la-compilation-et-les-modules-en-c-et-en-c
Compiler un programme en C avec Dev C++ sous VistaIl est très probable que vous ayez des problèmes lors de la compilation d'une source C sous Vista avec Dev C++. Solution rapide de secours: le compilateur g++ Voici une astuce pour Dev-Cpp : Aller dans "Outils" -> "Options du compilateur" puis... www.commentcamarche.net/faq/sujet-9497-compiler-un-programme-en-c-avec-dev-c-sous-vista
Interfacer du code assembleur et du CInterfacer du code assembleur et du C Introduction Appeler du code assembleur écrit dans un fichier source externe Avec Nasm (x86 uniquement) Compilation/Execution sous Linux Avec Gcc (multiplateforme) Introduction Si, à tout hasard,... www.commentcamarche.net/faq/sujet-8257-interfacer-du-code-assembleur-et-du-c
C/C++ création d'un fichier executable (.exe) (Résolu)Bonjours à vous, j'ai eu mon cours de C/C++ mais j'aimerais maintenant parvenir a créer un fichier executable .exe! Est-ce que quelqu'un peut bien me guider un peu dans la procédure à suivre pour arriver à le créer. P.S : Je n'ai pas encore créer de... www.commentcamarche.net/forum/affich-2561292-c-c-creation-d-un-fichier-executable-exe
Compilation/execution programme C sous linux (Résolu)Bonjour, je veux paraitre noob mais j'ai un problème d'execution de programme C sous Linux Je développais auparavant avec l'IDE Code blocks sous Windows et je viens de passer à linux, marre de la fenêtre. J'ai un fichier test.c tout bête, le Bonjour... www.commentcamarche.net/forum/affich-11441152-compilation-execution-programme-c-sous-linux
[C]/[C++] Execution d'une commande externeBonjour à tous Je cherche à lancer une commande externe à partir d'un programme c/c++. La commande system serait parfaite si ce n'est qu'elle s'execute directement dans la console où je lance mon programme. Je m'explique: Si dans mon programme je fais... www.commentcamarche.net/forum/affich-352313-c-c-execution-d-une-commande-externe
Télécharger Micro Edi C#Micro-EDI C# est un logiciel pédagogique qui vous permet d’apprendre à programmer sous Net 2.0. Vous aurez la possibilité de compiler et d’exécuter des programmes C#. L’interface vous propose des fiches avec lesquelles vous pourrez... www.commentcamarche.net/telecharger/telecharger-34058335-micro-edi-c
Langage C - Les structures conditionnellesQu'est-ce qu'une structure conditionnelle ? On appelle structure conditionnelle les instructions qui permettent de tester si une condition est vraie ou non. Ces structures conditionnelles peuvent être associées à des structures qui se répètent... www.commentcamarche.net/contents/c/ccond.php3
Branchements en assembleurOn appelle saut (ou branchement) en assembleur le fait de passer à une instruction autre que celle qui suit celle en cours en mémoire. En effet, en temps normal (c'est-à-dire sans instruction contraire) le processeur exécute les instructions... www.commentcamarche.net/contents/asm/saut.php3
Liste des instructions en assembleurTableau des principales instructions en assembleur Voici une liste (non exhaustive) des principales instructions en assembleur des processeurs 80x86, ainsi que du code machine qui leur est associé et de leur taille en mémoire. Les valeurs val et... www.commentcamarche.net/contents/asm/liste.php3