Est-il possible de convertir en C/C++ code source de l'assemblée?

Est-il possible de transformer un simple code C ou C++ (par simple je veux dire: la prise de certains int comme la saisie, l'impression de quelques formes simples qui en dépendent int en sortie) langage d'assemblage? Si il n'y en a pas, je vais juste le faire manuellement, mais depuis que je vais le faire pour les processeurs tels que Intel 8080, il semblait juste un peu fastidieux. Pouvez-vous en quelque sorte d'automatiser le processus?

Aussi, si il ya un moyen, comment bon (comme dans: élégant) la sortie de l'assemblée fichier de code source, lorsqu'il est comparé à la simple traduction manuellement?

  • Il y a des programmes que pour ça... ils sont appelés compilateurs ;-). Juste essayer gcc -S par exemple.
  • Le processus de traduction d'une langue à une autre est appelé la compilation, nous avons l'habitude de compiler en C/C++ en binaire, mais la compilation d'une autre langue, que ce soit de l'assemblée ou de java est également tout à fait possible, la plupart des C/C++ toolchains vous permettent de compiler directement à l'assemblée toutefois, dans GCC et Clang, ceci est fait en utilisant l'option-S drapeau.
  • Aussi, généralement parlant, nous avons principalement faire des compilations que de réduire les abstractions, et la compilation d'un langage de bas niveau à un niveau élevé, est parfois désigné comme "décompilation" en effet lors de la compilation du langage de bas niveau de la langue, à partir de laquelle le faible niveau de la traduction a été créé. Toutefois, cela signifie généralement une perte de la totalité ou de la plupart des abstractions, comme ce sont généralement perdues en faire la compilation de niveau haut au niveau bas.
  • Une dernière remarque, lors de la compilation d'un langage de haut niveau à un faible niveau, il peut être une bonne idée de désactiver les symboles de débogage et d'optimisation, pour la sortie de l'assemblée plus apte pour les lecteurs humains.
InformationsquelleAutor Straightfw | 2013-11-13