Como você usa o gcc para gerar código de montagem na sintaxe da Intel?
151
A gcc -Sopção gerará código de montagem na sintaxe da AT&T. Existe uma maneira de gerar arquivos na sintaxe da Intel? Ou existe uma maneira de converter entre os dois?
Funciona comigo. Mas posso dizer de outra maneira, embora isso não tenha nada a ver com a execução do gcc. Compile o arquivo executável ou o código de objeto e desmonte o código de objeto na sintaxe Intel asm com objdump, conforme abaixo:
Isso resultará no arquivo * .exe e funcionou na minha experiência.
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.
echo "packsswb mm0,[bp+si-0x54]" | llvm-mc-3.2 -x86-asm-syntax=intel
dápacksswb -84(%bp,%si), %mm0
Respostas:
Você já tentou isso?
Não testado, mas o encontrei neste fórum em que alguém afirmou que funcionava para eles.
Eu apenas tentei isso no mac e ele falhou, então procurei na minha página de manual:
Pode funcionar na sua plataforma.
Para Mac OSX:
Fonte: https://stackoverflow.com/a/11957826/950427
fonte
prefix
/noprefix
(não tem certeza se importa se Clang consome a montagem).o
Funciona comigo. Mas posso dizer de outra maneira, embora isso não tenha nada a ver com a execução do gcc. Compile o arquivo executável ou o código de objeto e desmonte o código de objeto na sintaxe Intel asm com objdump, conforme abaixo:
Isso pode ajudar.
fonte
Eu tenho esse código no arquivo CPP:
Esse código funcionou com esta linha de comando do GCC:
Isso resultará no arquivo * .exe e funcionou na minha experiência.
Isso é tudo.
fonte
$ gcc -S -masm=intel -mconsole a.c -o a.out gcc: error: unrecognized command line option ‘-mconsole’
-o a.out
, não receberá um arquivo .s.