Utiliser visual c++ comme ide pour masm

Soyez le premier à donner votre avis sur cette source.

Vue 2 887 fois - Téléchargée 513 fois

Description

le but est de pouvoir se servir du debogueur de visual C++ express 2008
pour les programme masm.

Le plus simple est de créer une règle de génération personnalisée;
(Merci à BruNews pour son aide sur le mixage C++ et asm dans visual c++)

dans visual C++;
click droit sur le projet/règle de génération personnalisée
puis nouveau fichier de règles,rentrer le non du fichier (ici masm perso)
puis ajouter une règle de génération;

dans ligne de commande,rentrer;

ml -c -coff -nologo -Zi "-Fl$(IntDir)\$(InputName).lst" "-Fo$(IntDir)\$(InputName).obj" "$(InputPath)"

dans sortie,rentrer;

$(IntDir)\$(InputName).obj

dans extension de fichier,rentrer; .asm

puis sélectionner cette règle pour votre projet,générer la solution et vous pourrez déboguer le prog.

Source / Exemple :


exemple=afficher une messageBox

fichier m.inc;

INCLUDELIB user32.lib
INCLUDELIB kernel32.lib

ExitProcess PROTO dwExitCode:DWORD
MessageBoxA  PROTO :DWORD,:DWORD,:DWORD,:DWORD
MessageBox 		TEXTEQU <MessageBoxA>

fichier m1.asm;

.386
.model flat,stdcall
option	casemap:none 

include m.inc

.data

titre byte "coucou",0

.code

debut:

invoke MessageBox,0,addr titre,0,0
invoke ExitProcess,0

end debut

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
573
Date d'inscription
jeudi 28 novembre 2002
Statut
Membre
Dernière intervention
20 avril 2021
2
"Abandonne toute cette daube de 'invoke' et autres macros à la noix"
abandonner ml.exe c'est mieux
JWASM permet tout cela 32 64, ++ ,et peut être utiliser avec le c++ si on y tient,les fichiers nécessaires sont fournies.
Messages postés
75
Date d'inscription
mardi 29 juillet 2008
Statut
Membre
Dernière intervention
25 mars 2019

ok.
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
26
SI 64 bits:
ml64.exe -c -Cx /nologo -Fo$(IntDir)\$(InputName).obj $(InputName).asm
$(IntDir)\$(InputName).obj

POUR VS 10 ET 12:
SI 64 bits:
ml64.exe -c -Cx /nologo -Fo$(IntDir)%(Filename).obj %(Filename).asm
$(IntDir)%(Filename).obj;%(Outputs)
SI 32 bits:
ml.exe -c -coff -Cx /nologo -Fo$(IntDir)%(Filename).obj %(Filename).asm
$(IntDir)%(Filename).obj;%(Outputs)

Je répète:
Abandonne toute cette daube de 'invoke' et autres macros à la noix, ce n'est pas avec ça que tu pourras coder du x64. Vu que le 32 est absolument obsolète, tu devras y passer par force.
Messages postés
75
Date d'inscription
mardi 29 juillet 2008
Statut
Membre
Dernière intervention
25 mars 2019

Pour Visual c++ express 2010,c'est encore plus simple,il n'y a pas de ligne de commande à rentrer.

nouveau projet/visual c++/général
projet/personnalisation de la build/cocher la règle prédéfinit masm
ajouter un .asm au projet
renseigne le linker sur le système ciblé et le point d'entrée du prog;

projet/propriétées/editeur de liens/systeme=WINDWOS(/SUBSYSTEM:WINDWOWS)

projet/propriétées/éditeur de liens/avancé/point d'entrée=debut (pour mon exemple)

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.