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

  1. #1
    Candidat au Club
    Problème de récupération des paramètres de la ligne de commande
    Bonjour.
    Je programme en assembleur 32 bits et 64 bits (oui je sais, nul n'est parfait !!) sur un raspberry pi3B+.
    La récupération des paramètres de la ligne de commande stockés sur la pile s'effectue très bien en compilant avec as et en linkant avec ld.
    Or pour des cas particuliers, je dois utiliser des fonctions du langage C et pour un bon fonctionnement j'effectue le link avec gcc à la place de ld.
    Et dans ce cas, la récupération des paramètres sur la pile n'est pas bonne. J'ai essayé de voir s'il y avait un décalage dans les données stockées sur la pile mais je ne trouve rien.
    Quelqu'un saurait-il me dire où se trouvent les adresses des paramètres dans ce cas ?
    Merci de votre aide.

  2. #2
    Candidat au Club
    Problème résolu
    Désolé pour mon message d'hier mais il s'agissait d'une erreur de ma part dans le script de compilation.
    En effet après avoir recherché le même type d'erreur sur les blogs et forums, il n' y avait aucun signalement de ce type d'anomalie, ce qui impliquait qu'il s'agissait d'une erreur personnelle.
    Après avoir tout revérifié, il s'avère que j'avais omis dans la ligne du link gcc l'option -e main pour indiquer que mon point d'entrée était main.
    En effet, lors du link d'un programme par gcc, celui ci insère des instructions supplémentaires et considère que le point d'entrée est _start.
    Et dans ces instructions supplémentaires exécutées en début de programme, il y a une modification de l'adresse de la pile.
    Ce qui explique que mon programme ne retrouvait pas les adresses des paramètres de la ligne des commandes.
    Mais ces recherches n'ont pas étaient inutiles car sur un forum, j'ai trouvé des explications pour éviter l'appel à gcc en mettant simplement les librairies adhoc dans l'appel à ld.

###raw>template_hook.ano_emploi###