L'option gcc -S
génère le code d'assemblage dans la syntaxe AT & T, existe-t-il un moyen de générer des fichiers dans la syntaxe Intel? Ou y a-t-il un moyen de convertir entre les deux?Comment utilisez-vous gcc pour générer du code d'assemblage dans la syntaxe Intel?
Répondre
Avez-vous essayé?
gcc -S -masm=intel test.c
Untested, mais je l'ai trouvé dans cette forum où quelqu'un a affirmé qu'il travaillait pour eux.
Je viens d'essayer ce sur le mac et il a échoué, alors je regardais dans ma page man:
-masm=dialect
Output asm instructions using selected dialect. Supported choices
are intel or att (the default one). Darwin does not support intel.
Il peut travailler sur votre plate-forme.
Pour Mac OS X:
clang++ -S -mllvm --x86-asm-syntax=intel test.cpp
Le
gcc -S -masm=intel test.c
fonctionne bien avec moi. Mais je peux dire d'une autre façon, même si cela n'a rien à voir avec l'exécution de gcc. Compile l'exécutable ou le fichier de code objet et désassembler le code objet dans la syntaxe Intel asm avec objdump comme ci-dessous:
objdump -d --disassembler-options=intel a.out
Cela pourrait aider.
même que objdump -d -M intel –
Je possède ce code dans le fichier RPC:
#include <conio.h>
#include <stdio.h>
#include <windows.h>
int a = 0;
int main(int argc, char *argv[]) {
asm("mov eax, 0xFF");
asm("mov _a, eax");
printf("Result of a = %d\n", a);
getch();
return 0;
};
C'est le code travaillé avec cette ligne de commande GCC:
gcc.exe File.cpp -masm=intel -mconsole -o File.exe
Il en résultera un fichier * .exe, et cela a fonctionné dans mon expérience.
Notes:
immediate operand must be use _variable in global variabel, not local variable.
example: mov _nLength, eax NOT mov $nLength, eax or mov nLength, eax
A number in hexadecimal format must use at&t syntax, cannot use intel syntax.
example: mov eax, 0xFF -> TRUE, mov eax, 0FFh -> FALSE.
C'est tout.
Ne fonctionne pas sur mon Fedora: '$ gcc -S -masm = intel -mconsole ac -o a.out gcc: erreur: option de ligne de commande non reconnue '-mconsole'' – d33tah
Fonctionne en cygwin. L'assemblage va comme intel, sort comme intel dans le fichier .s. Si vous utilisez '-o a.out', vous n'obtiendrez pas de fichier .s. – Orwellophile
- 1. Générer du code C# pour la table Oracle
- 2. Syntaxe hilighting pour les avertissements gcc dans bash
- 3. Convert Inline C Assembleur (Intel syntaxe AT & T)
- 4. Comment rediriger la sortie du compilateur gcc dans un fichier?
- 5. Générer DropDownList à partir du code derrière
- 6. Modèles T4 - adaptés pour générer du code C++?
- 7. Utilisation de la syntaxe Intel ASM lors de la compilation avec TinyCC
- 8. Comment générer du code C# à partir de fichiers WADL?
- 9. Comment obtenir des autotools à compiler avec le compilateur Intel?
- 10. Comment rechercher la syntaxe du langage dans Google?
- 11. Comment exporter la documentation du code dans C#/VisualStudio 2008?
- 12. Utilisation du moteur de rendu aspx pour générer du code non
- 13. Comment injecter/générer du code de plomberie dans des méthodes décorées avec un attribut?
- 14. Erreur de syntaxe avec une version différente de gcc?
- 15. Comment générer le code lui-même?
- 16. Comment générer un symbole de débogage gcc en dehors de la cible de génération?
- 17. Recherche d'emplacements dans le code machine (gcc/objdump -d)
- 18. C# Accès à la syntaxe du champ
- 19. Comment faire pour convertir la syntaxe de la requête à la syntaxe de la méthode
- 20. Syntaxe du template/config universel
- 21. Compilateur Intel C++ pour Windows CE
- 22. Générer du code vectoriel à partir de Haskell?
- 23. ASP.NET: générer dynamiquement du HTML, comment?
- 24. Comment générer du code Pascal à partir d'un schéma XML dans Delphi Prism?
- 25. syntaxe du modèle
- 26. Quelle est la syntaxe équivalente pour ce code de vue MVC dans Spark?
- 27. Générer un code depuis Emacs
- 28. Une question sur la syntaxe du modèle C++ (code source de la bibliothèque STL)
- 29. Analyseur pour la syntaxe Mathematica?
- 30. lien pour booster regex dans gcc
Vous pouvez convertir facilement des instructions simples dans le shell avec llvm-mc: 'echo" packsswb mm0, [bp + si-0x54] "| llvm-mc-3.2 -x86-asm-syntax = intel' donne 'packsswb \t -84 (% bp,% si),% mm0' –