Inclure de l'assembleur dans du C !
Répondre à la discussion
Affichage des résultats 1 à 11 sur 11

Inclure de l'assembleur dans du C !



  1. #1
    inviteb61e4847

    Inclure de l'assembleur dans du C !


    ------

    Hello à tous,

    pour travailler avec le bit carry, j'ai besoin de passer en assembleur.

    Quand je fais :

    asm("ld r16,(ma variable)";
    Je rentre, il exécute le code, mais ne ressort pas. J'ai déplacé les point-virgule, ça ne change rien.
    Quelque chose manque, mais quoi ?

    Merci à tous

    -----

  2. #2
    Jerome.jh

    Re : Inclure de l'assembleur dans du C !

    quel compilateur???

  3. #3
    inviteb61e4847

    Re : Inclure de l'assembleur dans du C !

    Citation Envoyé par Jerome.jh Voir le message
    quel compilateur???
    Hello j'utilise AVRstudio4.18 avec Winavr.
    Mon micro est l'ATmega8

    Merci

  4. #4
    ftorama

    Re : Inclure de l'assembleur dans du C !

    Code:
    asm("ld r16,(ma variable)\n");
    Tu transmets des chaînes, il faut ajouter le "\n"

  5. A voir en vidéo sur Futura
  6. #5
    inviteb61e4847

    Re : Inclure de l'assembleur dans du C !

    Citation Envoyé par ftorama Voir le message
    Code:
    asm("ld r16,(ma variable)\n");
    Tu transmets des chaînes, il faut ajouter le "\n"
    Bonne blague :P

    Plus sérieusement, si je met
    asm("ld r16,X");
    asm("ret");
    Il sors du premier, passe dans le ret et.... plante !
    Une idée ?

    Merci !

  7. #6
    Jerome.jh

    Re : Inclure de l'assembleur dans du C !

    Je dis peut-être une connerie, mais quel est l'intérêt du RET? Laisse le compilo C se charger de générer le code pour retourner de la fonction. Le "ld r16,x" tout seul fonctionne? r16 c'est un registre spécial ou "general purpose"?
    Je ne connaît pas l'assembleur AVR. juste pour te donner des idées ...

  8. #7
    Jerome.jh

    Re : Inclure de l'assembleur dans du C !

    sinon pour la syntax, le 2eme exemple est correct: pas besoin des 2 points virgules.

  9. #8
    ftorama

    Re : Inclure de l'assembleur dans du C !

    Citation Envoyé par weldod Voir le message
    Bonne blague :P

    Plus sérieusement, si je met
    Mais je suis très sérieux. Je suis en ce moment même en train de coder sur un Arduino dont le langage est basé sur WinAVR.

    J'ai fait une petite tempo avec des nop dont voici le code:
    Code:
    for (i=0;i<10;i++)
        asm("nop\n");
    Sous Codevision, la procédure de passage de directives assembleur est différente (avec des #asm et #endasm mais pas de chaines ni de \n.

    Au lieu de rigoler, essaie et tu reviendras m'en parler ....

    Si mes souvenirs sont bons, la fonction asm() insère des lignes de code dans le source assembleur, comme un éditeur donc sans retour chariot, tu pars dans l'hyper-espace. Ça se vérifie facilement dans le code source généré
    Dernière modification par ftorama ; 08/09/2011 à 16h15.

  10. #9
    inviteb61e4847

    Re : Inclure de l'assembleur dans du C !

    Citation Envoyé par ftorama Voir le message
    Mais je suis très sérieux. Je suis en ce moment même en train de coder sur un Arduino dont le langage est basé sur WinAVR.

    J'ai fait une petite tempo avec des nop dont voici le code:
    Code:
    for (i=0;i<10;i++)
        asm("nop\n");
    Sous Codevision, la procédure de passage de directives assembleur est différente (avec des #asm et #endasm mais pas de chaines ni de \n.

    Au lieu de rigoler, essaie et tu reviendras m'en parler ....

    Si mes souvenirs sont bons, la fonction asm() insère des lignes de code dans le source assembleur, comme un éditeur donc sans retour chariot, tu pars dans l'hyper-espace. Ça se vérifie facilement dans le code source généré
    J'ai essayé, le soucis c'est qu'il exécute le code assembler, puis plante, comme si il y avait une boucle infini.


    While(1)
    {
    asm("LD r16,Rseg"); <--- ça passe
    asm("LD R12,X"); <--- ça éxecute puis ça bloque
    x++; <--- ça ne passe pas
    }
    Avec les "\n" ça ne passe plus !

    Merci de l'intérêt porté à ce topic

  11. #10
    ftorama

    Re : Inclure de l'assembleur dans du C !

    Citation Envoyé par weldod Voir le message
    J'ai essayé, le soucis c'est qu'il exécute le code assembler, puis plante, comme si il y avait une boucle infini.
    Ah oui mais avec du passage de paramètres, ça devient tout de suite un peu plus chevelu....

    Regarde par là:
    http://www.scienceprog.com/how-to-us...-using-winavr/
    Dernière modification par ftorama ; 08/09/2011 à 22h28.

  12. #11
    xberger

    Re : Inclure de l'assembleur dans du C !

    Bonjour,

    Lorsqu'il est indiqué "ma variable" dans le code en assembleur,
    est-ce le nom de la variable déclarée en C ?

    Il faut mettre en assembleur l'adresse physique de cette variable
    Le nom de cette variable n'est pas connu en assembleur

    Cordialement

    Xavier

Discussions similaires

  1. Inclure un fichier .m dans un fichier .mdl
    Par invitebcede47f dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 31/05/2011, 02h25
  2. Questions sur l'assembleur
    Par invited170028e dans le forum Logiciel - Software - Open Source
    Réponses: 12
    Dernier message: 22/02/2010, 10h26
  3. Passage de l'assembleur vers C pour PIC
    Par invite95375788 dans le forum Électronique
    Réponses: 4
    Dernier message: 25/09/2008, 23h26
  4. Inclure des formules de mathématique dans une page HTML
    Par invited927d23c dans le forum Logiciel - Software - Open Source
    Réponses: 8
    Dernier message: 03/01/2006, 15h08
  5. Mixer le C et l'assembleur avec IAR dans un fichier source
    Par invite0e1ebad6 dans le forum Électronique
    Réponses: 4
    Dernier message: 14/01/2004, 17h36
Découvrez nos comparatifs produits sur l'informatique et les technologies.