Pergunta sobre objdump, x86-64, linux, assembly – Como pode objdump emitir sintaxe intel

52

Como posso eu saberobjdump emitir assembly na sintaxe Intel em vez da sintaxe AT & T padrão?

Sua resposta

2   a resposta
94

O que você está procurando é-M intel. Use-o da seguinte maneira.

<code>objdump -M intel -d program_name
</code>
No OS X, verifica-se que / usr / bin / objdump pode não ser realmente objdump, mas na verdade llvm-objdump. Você pode usar objdump --help, mas na verdade não lhe fala sobre a opção que lhe dá saída no estilo intel, que parece ser-x86-asm-syntax=intel . Suspiro. John Clements
6

Se você quiser códigos mnemônicos da Intel (em vez de códigos mnemônicos da AT & T), você pode usar:

objdump -M intel intel-mnemonic -D <program's-object-file>

Oh, certo. Eu negligenciei isso completamente no interesse de ser mais explícito. Obrigado! shigoel
Na realidade,-M intel já cuida disso. Tente desmontar a sequência0f b7 c3 - com-M intel isso vai te darmovzx eax,bx, enquanto sem objdump reverte para a AT & T por padrão e você obtémmovzwl %bx,%eax. Daniel Kamil Kozar
Da leitura do manual,-M intel-mnemonic implica intel, Não o contrário. Eu ainda não sei as diferenças entre os dois. eu fizobjdump -M intel -d file > intel, objdump -M intel-mnemonic -d file > intel-mnemonic, entãodiff intel intel-mnemonic e não houve diferenças. Eu até tentei com-D ao invés de-d apenas no caso de haver diferenças nas outras seções. RastaJedi

Perguntas relacionadas