Je me demandais s'il y avait un moyen spécial de compiler du code de haut niveau (de préférence de c/C++ ou java) pour obtenir le code d'assemblage correspondant.Comment compiler le code de haut niveau pour obtenir le code d'assemblage?
Répondre
gcc can dump an assembly listing using -S switch - il va émettre le code d'assemblage dans un fichier avec une extension .s. Par exemple, la commande suivante:
gcc -O2 -S -c foo.c
laissera le code d'assembly généré sur le fichier foo.s.
Si vous voulez voir le code C en même temps que l'assemblée, il a été converti en, utiliser une ligne de commande comme ceci:
gcc -c -g -Wa,-a,-ad [other GCC options] foo.c > foo.lst
qui affichera la liste C/ensemble combiné au fichier foo.lst .
La plupart des compilateurs prendront en charge quelque chose de similaire pour faciliter le débogage du compilateur lui-même. For Visual C++, see this guide.
Savez-vous si g ++ a cette fonction? Si oui, comment l'utilisez-vous? thx – user176121
Oui, il a! Vérifiez la page man de g ++ pour obtenir plus de détails – vpram86
L'option pour g ++ devrait être exactement la même –
en supposant que vous utilisez gcc, http://www.delorie.com/djgpp/v2faq/faq8_20.html vous dit de gcc -O2 -S -c foo.c
consulter le manuel/Doco pour votre compilateur - je suis sûr qu'il ya une option pour le faire.
Ces langages sont assez différents en ce que C et C++ sont normalement compilés en code machine, tandis que Java utilise une machine virtuelle. Vous ne pouvez pas raisonnablement compiler Java en langage assembleur (si vous voulez voir le code machine, utilisez un débogueur), mais avec C ou C++ cela devrait être assez facile, selon votre compilateur. Par exemple, lorsque vous utilisez gcc
, donnez-lui simplement une option -S
et il produira un fichier de code d'assemblage à la place du code objet.
Il existe des compilateurs Java (comme [gcj] (http://gcc.gnu.org/java/)) qui compilent le code natif plutôt que le bytecode JVM. Vous pourriez regarder l'assemblée générée pour ceux-ci. –
De nombreux compilateurs ont la possibilité d'afficher le code d'assemblage généré. Par exemple, gcc a l'option -S, qui arrêtera la compilation avant l'assemblage et vous laissera les fichiers d'assemblage.
- 1. compiler le code c vs 2005
- 2. Où puis-je obtenir le code source de Psiphon et comment le compiler sur CentOS 5?
- 3. Compiler le code directement dans MSIL
- 4. ne peut pas compiler le code c
- 5. obtenir le code de sortie pour le programme python
- 6. compiler le code mysql c de base avec xcode
- 7. Compiler l'injection de code temporel
- 8. Impossible de compiler le code à l'aide de Boost graphviz.hpp
- 9. Est-il possible de compiler le code d'assemblage dans MSVC++?
- 10. Comment obtenir le code T-SQL pour trouver des doublons?
- 11. Comment tester le code C
- 12. Comment est-ce que je peux compiler le code d'objet pour le mauvais système et croiser la question de compilation?
- 13. Comment obtenir le handle de module de mon propre code?
- 14. Comment exclure le code MFC de l'analyse de code VS2008
- 15. Compiler l'extension de code C# à l'exécution
- 16. Comment dans le code
- 17. meilleur outil pour le code-Analyzement ou code-Review
- 18. Où puis-je obtenir le code JSONRequestError?
- 19. Comment faire pour obtenir le contenu xaml WPF par le code sur le formulaire C#
- 20. Comment utiliser gcc pour compiler le code d'assemblage x86 sur un ordinateur x64
- 21. Un programme d'édition de code simulé pour le code C#
- 22. comment appeler le code de gestionnaire d'événements de code javascript
- 23. Pour obtenir valeur définie en javascript dans le code derrière
- 24. Comment obtenir des autotools à compiler avec le compilateur Intel?
- 25. Existe-t-il une API Sourcesafe pour obtenir le total des lignes de code dans le contrôle de code source?
- 26. Comment identifier le code réordonnable? problèmes réordonnancement de code (.NET)
- 27. Raccourcir le code pour beaucoup de boutons dans le prototype
- 28. Comment profiler le code JRuby?
- 29. Ruby IE win32ole - comment obtenir le code d'état d'une page?
- 30. Comment puis-je obtenir le HMODULE pour le code en cours d'exécution?
Copie possible de [Utilisation de GCC pour produire un assembly lisible?] (Http://stackoverflow.com/questions/1289881/using-gcc-to-produce-readable-assembly) – Mark