IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Autres éditeurs Discussion :

Options de Turbo C


Sujet :

Autres éditeurs

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 130
    Points : 121
    Points
    121
    Par défaut Options de Turbo C
    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

  2. #2
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut Re: Options de Turbo C
    Citation Envoyé par Neo82
    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...
    Oui, en mode 'tiny' (.com). C'est une question pour le forum "Outils pour C & C++ / EDI / Compilateurs / etc"

    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

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 130
    Points : 121
    Points
    121
    Par défaut
    Ok merci je vais voir avec ca...

    Encore désolé pour le post au mauvais endroit :(

    @+

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 130
    Points : 121
    Points
    121
    Par défaut
    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

  5. #5
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par Neo82
    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?
    Oui (Modèle de mémoire)
    Et autrment tu dis de changer les valeurs des registres AVANT exécution... c'est à dire?
    Avant le jmp vers ton programme.
    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.
    Avant ce saut, tu dois mettre les 4 registres de segment à jour.
    Pas de Wi-Fi à la maison : CPL

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 130
    Points : 121
    Points
    121
    Par défaut
    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 :)

  7. #7
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par Neo82
    Bon ok pour les registres...

    Admettons que je charge mon programme à l'adresse 0100:0000, j'initialise les 4 registres à 0x0100, et je saute à l'adresse 100:0000
    C'est bien ca?
    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...
    Par contre comment utiliser ce modèle de mémoire "tiny"? A la compilation, ou dans le code?
    C'est une option du compilateur.
    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

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 130
    Points : 121
    Points
    121
    Par défaut
    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...

    @+

  9. #9
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par Neo82
    Pourquoi parles tu de PSP?
    Le modele tiny ne permet-il pas d'avoir un exe sans en-tête??
    Comme je t'ai dit, je ne me souviens plus de ces détails...
    Pas de Wi-Fi à la maison : CPL

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 130
    Points : 121
    Points
    121
    Par défaut
    Ah d'accord excuse moi

    Bon ben je vais essayer comme ca alors

    @++

Discussions similaires

  1. [Turbo Pascal] Turbo Pascal sous Windows XP
    Par MichelR dans le forum Turbo Pascal
    Réponses: 21
    Dernier message: 17/03/2011, 10h10
  2. Couleur sous DEV C++ ou Turbo C ++
    Par bootix dans le forum Autres éditeurs
    Réponses: 4
    Dernier message: 19/12/2002, 09h28
  3. [propriétés]Option Checked
    Par psl dans le forum Composants VCL
    Réponses: 6
    Dernier message: 22/08/2002, 08h07
  4. Parametrage des options de projet
    Par ares7 dans le forum EDI
    Réponses: 7
    Dernier message: 22/07/2002, 15h33
  5. Vous gerez comment les options d'un programme?
    Par n0n0 dans le forum C++Builder
    Réponses: 5
    Dernier message: 17/05/2002, 13h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo