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 architectures Assembleur Discussion :

[68k] Compilation mixte - Assembleur / C


Sujet :

Autres architectures Assembleur

  1. #1
    Membre régulier Avatar de FidoDido®
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2005
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2005
    Messages : 101
    Points : 81
    Points
    81
    Par défaut [68k] Compilation mixte - Assembleur / C
    Bonjour,

    J'ai plusieurs questions de gros nioub


    1. A-t-on le droit de gérer des allocations dynamiques dans un code C appelé par de l'asm 68k ?
      C'est à dire, l'allocation est-elle perdue une fois que l'assembleur reprend la main ? Et est-elle reconnue par l'asm ?
    2. Le C ne risque-t-il pas d'écrire par dessus des données stockées par l'asm et inversement ?
    3. Faut il obligatoirement une fonction main et si oui de quel type ?

    Merci

    FidoDido
    Pensez au TAG [Résolu]

  2. #2
    Membre habitué
    Profil pro
    Enculeur de mouches
    Inscrit en
    Septembre 2003
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France, Creuse (Limousin)

    Informations professionnelles :
    Activité : Enculeur de mouches

    Informations forums :
    Inscription : Septembre 2003
    Messages : 133
    Points : 161
    Points
    161
    Par défaut
    Mes réponses ne sont pas spécifiques aux 68x00.
    Le plus complexe pour interfacer du C avec de l'ASM c'est de bien respecter les conventions d'appel des fonction C (empilement, registre pour la valeur renvoyée, etc...) Ces conventions dépendent de ton compilo.

    1- A priori pas de soucis, mais :

    l'allocation (je suppose que tu parle d'une allocation dans le tas, via un malloc() ), ou plus précisément l'adresse de la mémoire alloué, doit évidemment être renvoyée au code ASM, afin de pouvoir utiliser la zone mémoire alloué.

    De plus, il est impératif de passer par un bout de code C et d'y faire un free(), pour libérer la zone mémoire. Cela n'est pas strictement obligatoire (y'a moyen de bidouiller) mais ce serais bien plus complexe (plus le risque de te vautrer).

    2- Pas plus qu'une fonction C ne risque d'écraser les données stockées par une autre fonction C : c'est pas l'ASM qui induit les risques, c'est le codeur.
    A toi de faire attention.

    3- Chaque programme possède un point d'entrée. Par exemple, sous Linux, il est impératif de déclarer une fonction _start, appellé par le système après le chargement du programme.
    Sous Linux toujours, cette fonction est écrite automatiquement par le compilo et appelle la fonction main() après avoir "traité" les arguments de la ligne de commande (mise en tableau).
    Encore une fois, le point d'entré exact dépend de ton système.

    Vàlà...
    Gaïa n'est pas une marchandise.

  3. #3
    Membre régulier Avatar de FidoDido®
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2005
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2005
    Messages : 101
    Points : 81
    Points
    81
    Par défaut
    Merci de ta réponse aussi rapide.

    Je vais me battre avec les IMPAIRS ET MANQUE...

    ci@o
    Pensez au TAG [Résolu]

Discussions similaires

  1. Compilation gcc assembleur Microblaze
    Par mith06 dans le forum Autres architectures
    Réponses: 2
    Dernier message: 30/10/2012, 11h28
  2. [68k] Additions en Assembleur Motorola 68k
    Par GoZwell dans le forum Autres architectures
    Réponses: 3
    Dernier message: 07/03/2009, 13h51
  3. Compilation Qt assembleur g++
    Par Altess dans le forum Qt
    Réponses: 6
    Dernier message: 06/02/2009, 09h32
  4. [MEX] Compilation mixte de C et de Fortran
    Par ZeFMG dans le forum MATLAB
    Réponses: 2
    Dernier message: 20/11/2008, 10h27
  5. Compilation d'un programme C++ / Assembleur
    Par nicolas66 dans le forum C++
    Réponses: 8
    Dernier message: 25/06/2006, 18h53

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