Bonjour,
Comme cité dans le titre je veux utiliser le Masm (programmation assembleur) sur Windows 7 (64bits)
mais ça ne marche pas,
y a-t-il une version pour les 64bits,
Merci de m'aider
Bonjour,
Comme cité dans le titre je veux utiliser le Masm (programmation assembleur) sur Windows 7 (64bits)
mais ça ne marche pas,
y a-t-il une version pour les 64bits,
Merci de m'aider
Bonjour,
A mon humble avis, masm32 est fait pour les architectures 32 et pas 64. Je dirais que le seul moyen de l'utiliser sous 7 c'est de créer une machine virtuelle avec un Windows 32bits dessus.
Sur le site msdn, dans la section Download, il y a VirtualPC 2007 qui est gratuit et il y a des images (fichier *.vhd) d'OS windows (Windows Server 2003 par exemple) qui sont téléchargeables en version limitée dans le temps (30 ou 60 jours...).
Sinon, pour ce qui est du mode 64 bits, je vous conseille d'utiliser un outil comme NASM qui permet de créer des objets en 64 ou 32 bit ou même 16bits MSDOS.
Un autre moyen est de télécharger une version de visual studio c++ pour architecture x64 ou IA64 selon votre plateforme et de regarder si il n'y a pas un compilateur assembleur et un éditeur de liens dans les binaires.
Bon courrage et lâchez pas le morceau ! Vous êtes certainement un pionier dans le domaine
majucarma
Goe,
Les applications 32 bits fonctionnent très bien sur les Windows 64 bits.
Par contre, Masm32 ne sait pas générer de code 64 bits.![]()
Comme je l'ai sous-entendu dans ma réponse :
Le fichier ml64.exe dans Visual Studio 2005 ou 2008 pour architecture 64 devrait correspondre au fichier ml.exe de masm32...
Il y a même un article dans le msdn pour configurer correctement l'environneemnt 64 :
http://msdn.microsoft.com/en-us/library/hb5z4sxd.aspx
Pour obtenir visual studio voir le site de Microsoft ou sur le msdn, il semble que MASM soit inclu dans Visual Studio Express qui est gratuit. (voir dans la rubrique téléchargement dans le menu de la page donnée ci-dessus.
Je suis étonné que MASM32 ne fonctionne pas sur Windows7 64 car effectivement, que les programmes soient en 32 ou 64 bits, ils fonctionnent très bien sur un proc 64. Il devrait donc être possible de développer des appli en 32 bits sous Win 7 avec Masm32. A moins que ce soit les libs...
Normalement sur un système 64 on a un dédoublement des ressources partagées pour répondre aux besoins des modes 32 ou 64 bits. Mais cela demande de bien configurer les outils de compilation et d'édition des liens.
Au delà de faire fonctionner le compilateur, la programmation en 64 bits est différente du mode 32bits. Le premier exemple qui me vient à l'esprit sont les conventions d'appels qui n'ont plus rien à voir et dépendent du type de processeur (IA64, x64, EMT64...) ainsi que de l'os installé (Windows/Linux ou UNIX/BSD). Il y a des points communs entre les différents modèles, mais il y a aussi des particularités. Le code correspondant à un appel d'une fonction dans une librairie du système en asm 64 est complètement différent selon les contextes.
Le passage du mode 32 au mode 64 est un peu plus compliqué que ce que nous avons connus lors du passage du mode 16 au mode 32.
Voila
Cordialement,
Un Windows 64 bits contient deux répertoires System32: un contenant les fichiers systèmes 64 bits (appelé "System32") et un autre contenant les mêmes fichiers systèmes, mais en 32 bits (appelé "SysWOW64"), pour permettre aux applications 32 bits de fonctionner. Donc normalement, MASM32 devrait fonctionner.
Oui, c'est plus compliqué, Un Windows 32 bits utilise la convention d'appel STDCALL. Chaque argument d'une procédure est stockée dans la pile du dernier jusqu'au premier. Un Windows 64 bits utilise la convention d'appel FASTCALL. Je ne comprends pas très bien cette convention d'appél mais il me semble que les premiers arguments d'une procédure sont stockés dans des registres, et le reste dans la pile, selon le nombre d'arguments en tout.
Au fait, x64 et EM64T sont la même chose (avec quelques différences quand même), là ou le IA64 est totalement différent. Le x64 est une évolution du x86 mis au point par AMD. Cette architecture est compatible avec le x86 classique. Le IA64 fonctionne exclusivement en mode 64 bits. Et plus tard, Intel, à mis au point EM64T, une architecture 64 bits similaire à l'architecture x64.
Tommy
Bonjour,
en ce qui concerne la programmation assembleur x64 sous Windows, c.f la FAQ de DVP: http://asm.developpez.com/faq/?page=fx64
Il faut savoir que ML64 (MASM 64) ne gère plus certaines choses (notamment INVOKE, les variables locales (LOCAL), les conditions (.IF . ELSE), etc.) bien utiles quand on est habitué à MASM en 32 bits.
Daniel Pistelli à fait un bon tuto général sur l'assembleur x64: http://ntcore.com/files/vista_x64.htm#x64_Assembly
Je conseil plutôt d'utiliser GoAsm pour ce qui est de trouver un programme d'assemblage correct sous x64 : souvent mis à jour, auteur que l'on peut facilement contacter, assemblage très rapide, link transparent, macro invoke, etc. : http://www.jorgon.freeserve.co.uk/
Jeremy Gordon (L'auteur de GoAsm) a mis en ligne des explications et qques tutos: http://www.jorgon.freeserve.co.uk/#64
Ceci dit, pour MASM32 sous Windows7 x64, je suis surpris qu'il ne fonctionne pas puisque [ame="http://en.wikipedia.org/wiki/WOW64"]Wow64[/ame] permet justement d'exécuter du code 32 bits sur un O.S 64 bits sans problème. C'est peut être lié à un problème d'installation plutôt qu'au binaire (ml.exe) lui-même.
Il faudrait que le créateur du fil de discussion nous dise quel type exact de problème il rencontre lors de l'utilisation de MASM32 sur son O.S.
Bonjour,
Tout à fait d'accord avec le dernier message de Neitsa.
Aussi je pense que nous avons effectivement d'avoir une précision sur le type d'erreur rencontrée (message... et quand...) ainsi nous pourront rejouer le pb.
Et, il est important de savoir si A.i.A souhaite développer en asm 64 ou 32. Cela peut nous orienter soit vers l'installation de MASM32 soit vers MASM64 ce qui n'est pas la même chose.
Celon la réponse on peut choisir d'installer MASM 8.0 ou
Quoiqu'il en soit, de mon point de vue, le plus simple est d'installer Visual Studio C++ 2008 (en version Express ou payante au choix de l'utilisateur) dont MASM (ml.exe) et MASM64 (ml64.exe) font partie des outils de compilation.
Le lien vers la page de téléchargements : http://msdn.microsoft.com/fr-fr/express/default.aspx
Ensuite tout est une question de paramétrage et il faut suivre les instructions sur MSDN.
Aussi, quand aux remarques de tommy60, cela me donne une idée... Il y a peut-être un path à changer dans la config de MASM32... ou même remplacer "System32" par "SysWOW64" dans tous les path pour pointer vers les bonnes bibliothèques sur un Windows 7 64 (marrant qu'ils n'aient pas utilisé System64 pour les libs 64 et System32 pour les libs 32 (enfin, bref...)).
Du coup, il est peut-être plus simple d'installer masm sur une machine virtuelle en 32 bits... Les exe générés fonctionneront aussi sous Win 7 et c'est plus simple que de monter une usine à gaz.
Partager