Bonjour
j'aimerai savoir si avec Turbo C on peut compiler un programme en 16 bits pour créer un éxécutable sans en-tête, et en précisant une adresse de référence...
un peu comme avec GCC avec les options --ofile et -Ttext
merci beaucoup
Bonjour
j'aimerai savoir si avec Turbo C on peut compiler un programme en 16 bits pour créer un éxécutable sans en-tête, et en précisant une adresse de référence...
un peu comme avec GCC avec les options --ofile et -Ttext
merci beaucoup
Oui, en mode 'tiny' (.com). C'est une question pour le forum "Outils pour C & C++ / EDI / Compilateurs / etc"Envoyé par Neo82
Pour ce qui est de l'adresse de référence, je ne pense pas, car le code est prévu pour être relogeablle 'naturellement'. C'est tout l'intérêt du code 16-bit... Par contre, tu peux, avant l'exécution, charger CS, DS, ES et SS à l'adresse du segment désiré (la même pour les 4 obligatoirement), sachant que le code démarrera en CS:0.
Attention aussi que dans ce mode, le code et les données sont dans le même segment. Pas question de PROMer...
Pas de Wi-Fi à la maison : CPL
Ok merci je vais voir avec ca...
Encore désolé pour le post au mauvais endroit :(
@+
Bon alors je viens de regarder un petit peu.... et je ne vois pas comment utiliser le mode "tiny"
C'est une option du compilateur?
Et autrment tu dis de changer les valeurs des registres AVANT exécution... c'est à dire?
Parce que en fait voila ce que je voudrai faire:
démarrer à partir d'une disquette (boot) puis copier le programme en C à un endroit CONNU de la ram.. ensuite faire un saut vers ce programme, pour lui passer la main. Je reste en mode réel.
Voila @+ et merci d'avance
Oui (Modèle de mémoire)Envoyé par Neo82
Avant ce saut, tu dois mettre les 4 registres de segment à jour.Et autrment tu dis de changer les valeurs des registres AVANT exécution... c'est à dire?
Parce que en fait voila ce que je voudrai faire:Avant le jmp vers ton programme.
démarrer à partir d'une disquette (boot) puis copier le programme en C à un endroit CONNU de la ram.. ensuite faire un saut vers ce programme, pour lui passer la main.
Pas de Wi-Fi à la maison : CPL
Bon ok pour les registres...
Admettons que je charge mon programme à l'adresse 0100:0000, j'initialise les 4 registres à 0x0100, et je saut à l'adresse 100:0000
C'est bien ca?
Par contre comment utiliser ce modèle de mémoire "tiny"? A la compilation, ou dans le code?
Merci bien :)
Oui. C'est peut être 100:0100, si il y a un PSP... J'avoue que je ne me souviens plus très bien du détail du format d'exécutables sous DOS... Google est ton ami...Envoyé par Neo82
C'est une option du compilateur.Par contre comment utiliser ce modèle de mémoire "tiny"? A la compilation, ou dans le code?
Borland C 3.1 :
Option / Compiler
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 +-[_]------------- Code Generation -----------------+ ¦ ¦ ¦ Model Options ¦ ¦ (o) Tiny [X] Treat enums as ints ¦ ¦ ( ) Small [ ] Word alignment ¦ ¦ ( ) Medium [X] Duplicate strings merged ¦ ¦ ( ) Compact [ ] Unsigned characters ¦ ¦ ( ) Large [ ] Pre-compiled headers ¦ ¦ ( ) Huge [ ] Generate assembler source ¦ ¦ [ ] Compile via assembler ¦ ¦ ¦ ¦ Assume SS Equals DS ¦ ¦ (o) Default for memory model ¦ ¦ ( ) Never ¦ ¦ ( ) Always ¦ ¦ ¦ ¦ Defines DBG_SYSALLOC ¦ ¦ ¦ ¦ OK _ Cancel _ Help _ ¦ ¦ ________ ________ ________ ¦ +---------------------------------------------------+
Pas de Wi-Fi à la maison : CPL
Pourquoi parles tu de PSP?
Le modele tiny ne permet-il pas d'avoir un exe sans en-tête??
Sinon merci beaucoup je vais essayer et je te tiens au courant...
@+
Comme je t'ai dit, je ne me souviens plus de ces détails...Envoyé par Neo82
Pas de Wi-Fi à la maison : CPL
Ah d'accord excuse moi
Bon ben je vais essayer comme ca alors
@++
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