Je suis responsable d'un code au niveau de l'application dont j'ai hérité et qui contient du x86 ... Code d'assemblage Intel basé sur des instructions et un adressage 32 bits. Je vais faire l'hypothèse que ce code assembleur 32 bits sera exécuté lorsque nous migrons un système d'exploitation Windows 64 bits. Oui?Migration du code d'assemblage de 32 à 64 bits
Répondre
Plus que probablement, il fonctionnera; Windows 64 bits prend en charge le mode 32 bits pour les applications et il est généralement très fiable. (Évidemment, ces choses ne sont jamais 100%, cependant - caveat emptor.)
Oui. Le code 32 bits s'exécutera sur des machines 64 bits, mais ils ne pourront pas accéder à plus de 4 Go de RAM.
Il fonctionnera probablement, mais il ne profitera d'aucune des fonctionnalités que les extensions 64 bits de x86 asm fournissent (x86-64, qui est ce que toutes les versions "64 bits" de Windows) ou être capable d'interopérer étroitement avec les bibliothèques x64. La couche WoW64 est très stable et 99,999% des applications 32 bits fonctionnent correctement sur les systèmes d'exploitation «64 bits» actuels.
Si vous voulez migrer vers un véritable système d'exploitation 64 bits (les seuls que je connaisse sont basés sur Itanium, ia64), vous n'avez pas de chance. Editer: De plus, si vous voulez activer l'accès aux adresses larges (pouvant utiliser> 4 Go de RAM), vous pouvez inverser un drapeau d'en-tête PE qui l'activera et lui permettre d'adresser de plus grandes quantités de mémoire.
Fantastique! Merci beaucoup! Je suis nouveau ici (mais j'ai une bonne réputation sur SO) si j'avais une assez bonne réputation ici pour que je puisse voter. – ddm
Même. Je ne m'inquiète pas pour le représentant, donc voter n'a pas d'importance, mais si je répondais pour vous, vous pourriez vouloir accepter juste pour que les gens le sachent. :) – ssube
Ok acceptera, mais ce n'est pas évident comment faire cela (au moins pour moi). Envoyer un lien FAQ :-) – ddm
Il va exécuter si vous continuez à créer des applications x86 32 bits, pour le moment. Toutefois, si vous devez porter le code en 64 bits x86, il est probable que le code d'assemblage ne sera pas exécuté (et pourrait même ne pas être compilé). Et en fonction de votre chaîne d'outils et s'il s'agit d'un assembleur en ligne dans le code C/C++ ou non, vous ne pourrez peut-être même pas le compiler du tout.
Pourriez-vous élaborer? Pas même compiler? C'est un code C++ intégré. – ddm
De la mémoire - au moins avec le compilateur MS, l'assembleur inline ne compilera simplement pas sur la chaîne d'outils 64 bits car le compilateur ne supporte pas '__asm'. Je ne sais pas si d'autres compilateurs comme GCC souffrent également de ce problème. –
Nous utilisons VS - probablement 2010 au moment où le transfert de code a lieu. Je ne suis donc pas impatient de réécrire le code assy, pas impossible pour moi, mais pas une tâche pour laquelle je me suis inscrit. – ddm
- 1. Appel code 32 bits à partir de 64 bits Processus
- 2. Traiter le code 32 bits sur Snow Leopard 64 bits?
- 3. Détection du mode 32 bits sur IIS 64 bits
- 4. Xcode & 64 bits & 32 bits Question
- 5. Accès aux applications 32 bits du registre 64 bits
- 6. quel mysql 32/64 bits
- 7. L'iPhone OS 64 bits ou 32 bits?
- 8. Passage du pointeur 32 bits au contrôle COM 64 bits
- 9. Déplacement d'une application de 32 bits à 64 bits
- 10. Porteur Windows 32 bits à 64 bits Windows
- 11. Appels ioctl de l'application 32 bits au pilote 64 bits
- 12. Migration de l'application OS VC++ 32 bits vers l'application OS VC++ 64 bits
- 13. Conversion du code C++ non géré de 32 bits en 64 bits
- 14. Dev .NET 32 bits par rapport à 64 bits prod
- 15. Enregistrer 32 bits COM DLL à 64 bits Windows 7
- 16. SHGetFolderPath() 32 bits par rapport à 64 bits
- 17. Application java 64 bits à utiliser 32 bits dll
- 18. conversion implicite raccourcit 64 bits à 32 bits
- 19. Version 64 ou 32 bits de WinDBG?
- 20. VS build - 32 bits vs 64
- 21. Comment lancer un processus Windows en 64 bits à partir d'un code 32 bits?
- 22. Impossible de compiler 32 bits avec 64 bits g ++
- 23. 64 bits objets COM de 32 bits traiter
- 24. Mise à niveau 64 bits
- 25. Chargement d'un processus 32 bits dans un environnement 64 bits
- 26. Détermination de Windows 64 bits vs 32 bits
- 27. Exécution d'une application Web 32/64 bits
- 28. 64 bit weblogic 32 bits Oracle DB
- 29. Win7 64/32 bits C# dll doute
- 30. MapViewOfFile partagé entre les processus 32 bits et 64 bits
Ceci est intégré dans le code C++. – ddm
Pourquoi les votes serrés, je me demande. – Sathya
Peut-être que ce ne sera pas aussi facile que je le pensais. J'ai reçu un lien d'un répondeur (désolé - pas sûr de qui cette question a été déplacée) http://msdn.microsoft.com/fr-fr/library/hb5z4sxd.aspx Cela indique que "Inline ASM n'est pas supporté pour x64 Utilisez MASM ou les intrinsèques du compilateur (x64 Intrinsics). " – ddm