Partage
  • Partager sur Facebook
  • Partager sur Twitter

[asm] Problème d'exécution sous win64

je débute en assembleur

Sujet résolu
    8 juillet 2011 à 3:00:02

    Bonsoir !
    Voilà, je viens de commencer à apprendre l'assembleur avec ce tutoriel du site developpez.com
    J'ai installé NASM comme indiqué dans le tuto pour générer des fichier exécutable en .com pour les ouvrir dans MS-DOS
    Je rentre exactement le code du tutoriel dans mon éditeur de texte :

    org 0x0100 ; Adresse de début .COM
    ;Ecriture de la chaîne hello dans la console
    mov dx, hello
    mov ah, 0x9
    int 0x21
    ret
    hello: db 'Bonjour papi.', 10, 13, '$'


    après je crée mon fichier .com via MS-DOS, il se crée sans soucis en entrant la commande:
    nasm -o helloWorld.com helloWorld.txt


    Mais quand vient l'heure d'exécuter ce programme, j'ai un message d'erreur qui apparaît:

    Cette version de C:\User\...\helloWorld.com n'est pas compatible avec la version de Windows actuellement exécutée. Vérifiez dans les informations système de votre ordinateur si une version x86 (32 bits) ou x64 (64 bits) du programme est requise, puis contactez l'éditeur de logiciel.


    Bon je suis sous Windows 7 édition familiale 64 bits avec un processeur intel i7
    Ce que j'ai compris du problème c'est que j'ai codé et compilé en 32 bits, mais que ma version 64 bits n'est pas compatible? Ce qui m'étonne c'est que normalement le windows 64 bits est censé pouvoir exécuter des programmes en 64, 32 et 16 bits...
    Bref si vous pouvez m'aider je vous en serai reconnaissant !
    • Partager sur Facebook
    • Partager sur Twitter
      8 juillet 2011 à 13:47:37

      Je m'y connais pas trop en assembleur, mais ceci en début de code pourrait aider :

      bits 64 ; indique qu'on travaille en 64 bits
      • Partager sur Facebook
      • Partager sur Twitter
        8 juillet 2011 à 14:30:35

        Je poste pour voir s'il y aurait pas des solutions différentes de la mienne. Mais pour compiler un code ASM avec nasm sous Windows 7 64 bits, moi j'utilise DosBox.

        Edit: rien à voir mais pourquoi tu ne postes pas sur leur forum ??
        • Partager sur Facebook
        • Partager sur Twitter
          8 juillet 2011 à 15:04:45

          @ Chem : rajouter cette ligne au programme ne change pas le résultat.

          @BestCoder: en effet hier en parcourant quelques forum j'ai vu que pas mal de personnes parlaient de DosBox. C'est un émulateur MS-DOS si j'ai bien compris? je vais me le procurer et voir si cela résout ce souci !
          (je n'ai pas posté sur leur forum car je n'y ai pas de compte mais j'avoue c'est une remarque pertinente :p )
          • Partager sur Facebook
          • Partager sur Twitter
            8 juillet 2011 à 15:10:33

            Effectivement DosBox résout le soucis. Mais, c'est assez intriguant de ne pas pouvoir compiler directement sur Windows 7. Je cherche une solution depuis longtemps. La seule que j'ai eue pour le moment, c'est d'interfacer avec du C .
            • Partager sur Facebook
            • Partager sur Twitter
            Anonyme
              8 juillet 2011 à 15:15:53

              Au cas où : Windows 64 bits est incapable d’exécuter des programmes 16 bits et ne peut exécuter des programmes 32 bits grâce à une couche d'émulation très légère et des programmes 64 bits nativement.

              Aucune couche d’émulation 16 bits n'est présente.
              • Partager sur Facebook
              • Partager sur Twitter
                8 juillet 2011 à 15:43:54

                Citation : BestCoder

                Effectivement DosBox résout le soucis. Mais, c'est assez intriguant de ne pas pouvoir compiler directement sur Windows 7. Je cherche une solution depuis longtemps. La seule que j'ai eue pour le moment, c'est d'interfacer avec du C .



                Oui je viens d'installer DosBox ect. et mon programme fonctionne. Merci beaucoup !
                En effet c'est dommage de devoir passer par un émulateur plutôt que de le faire directement depuis la commande... J'essayerai d'interfacer avec du C aussi alors, si tu dis que ça marche, m'enfin pour moi l'essentiel c'est de pouvoir faire fonctionner mes petits programmes d'apprentissage pour le moment :)
                • Partager sur Facebook
                • Partager sur Twitter
                  19 novembre 2015 à 2:19:27

                  s'il vous je viens d'installer DOSbox mais je ne sais pas exécuter mon code.asm avec DOSbox ;y a t il quelque peeux m'aider  ?
                  • Partager sur Facebook
                  • Partager sur Twitter

                  [asm] Problème d'exécution sous win64

                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                  • Editeur
                  • Markdown