Visual Studio 2008 x64 et procedure __asm

ld121962 Messages postés 2 Date d'inscription vendredi 3 novembre 2006 Statut Membre Dernière intervention 16 novembre 2011 - 16 nov. 2011 à 15:56
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 - 18 nov. 2011 à 11:40
Bonjour,

Je voudrais passer un code de win32 en x64. A la compilation j'ai un message me disant que le mot clef "__asm, mov, etc.." sont inconnus.

Quelqu'un aurait il une explication?

 LDR

5 réponses

cs_GodConan Messages postés 2113 Date d'inscription samedi 8 novembre 2003 Statut Contributeur Dernière intervention 6 octobre 2012 12
16 nov. 2011 à 19:48
salut ;o)

ton compilateur ne sais peu etre pas lire l asm?!! ;o)
ou : je n ai pas fait d asm 64 ;o) mais je suppose que les registres (de fait ) doivent etre codé sur 8octets ;o) de meme que les adresses ;o) cela doit rendre certaine commande asm incompatible avec la version 32... ;o)

GodConan ;o)
0
ld121962 Messages postés 2 Date d'inscription vendredi 3 novembre 2006 Statut Membre Dernière intervention 16 novembre 2011
16 nov. 2011 à 21:24
C'est une réponse pertinente.

Le compilateur de MS comprend l'asm.
Le mot clef __asm ouvre une partie de code machine compilé par une partie distinct du compilateur.
Alors soit le compilateur n'est plus implémenté en asm ce qui m'étonnerais car MS à des partie en asm dans son propre code ou le mot clef à changer.
Donc ma question est : est ce qu'un autre identifiant remplace celui ci ?
Dans l'aide rien et chez MS non plus, à ma connaissance.
Est ce que quelqu'un aurais des infos ou une solution ?

 LDR
0
cs_GodConan Messages postés 2113 Date d'inscription samedi 8 novembre 2003 Statut Contributeur Dernière intervention 6 octobre 2012 12
16 nov. 2011 à 23:09
Merci pour la 'pertinence'... ;o)
mais désolé pas de réponse plus précise
;o);o)


GodConan ;o)
0
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
18 nov. 2011 à 11:38
Salut,

L'asm inline ne semble pas supporté par VS pour du x64, cf ici.

Divers solutions peu pratiques s'ouvrent à toi...
-> Ne pas faire le portage si possible (Autrement dit rester en 32 bits sachant que ça s'exécute pas trop mal sur un Windows 64 bits).

-> Tu peux réécrire en C les parties en assembleur (Et garder ou non l'assembleur dans le cas d'un compilation 32 bits avec des ifdef). A noter que des fonctions intrinsèques sont proposées par VS ce qui permet d'avoir indirèctement accès à des instructions assembleur autres que déplacement mémoire (Exemple rdtsc).

-> Certains des codes de BruNews sont apparemment 64 bits tout en utilisant de l'asm. Au lieu de passer par de l'assembleur en ligne, il utilise des fichiers séparés en .asm. Tu peux peut être étudier sa procédure de compilation. Il passe par ml64.exe pour assembler son code. Tu peux regarder ce genre de tuto aussi.

Je déplace le topic sur cppfrance.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
18 nov. 2011 à 11:40
0
Rejoignez-nous