
Envoyé par
rare1
voila voila ce que je veut
explique toi en un petit exemple
c'est bien cette astuce
tres interrsant explique
Et beh ma premiére solution consiste à produire le code binaire du code que doit contenir ton etiquette puis de le stocker dans une variable dans ton code C , et il faut initaliser un pointeur vers celle-ci pour pouvoir accéder à son adresse mémoire , donc tu fais simplement un jmp vers cette adresse mémoire .
C'est un peu la même chose qu'on fait sur un secteur de boot .
Voilà je vais expliquer , tu entres le code de ton etiquette dans un fichier etiquette.asm , en ajoutant avant ton code , celà a pour objectif de ne produire que du code 16 bits ( compatible avec DOS ) .
Puis tu utilises NASM ( si tu ne l'as pas , télécharges-le sur le net ) .
Tu compiles ton fichier avec
nasm -f bin -o etiquette.bin etiquette.asm
Et le reste va être très facile , tu ouvres le fichiers avec un éditeur héxadécimal qui devra respecter les caractéres ASCII complexes , et tu copies ce code .
Tu ouvres ton fichier C avec ce même éditeur ( et pas Turbo C ) et tu initialises une variable char , par exemple :
aprés celui ci , tu assignes le code binaire copié à la variable etiquette .
Et tu concaténes "jmp " avec &etiquette ( elle retourne l'adresse mémoire de etiquette ) ;
Enfin , tu executeras le résultats de la concaténation avec asm .
La compilation séparée aurai été plus simple .
Partager