objdump如何发出英特尔语法

pyt*_*nic 57 linux assembly x86-64 objdump

如何判断objdump以英特尔语法而不是默认的AT&T语法发出汇编?

Dan*_*zar 102

你在寻找什么-M intel.使用方法如下.

objdump -M intel -d program_name
Run Code Online (Sandbox Code Playgroud)

  • 在OS X上,事实证明/ usr / bin / objdump可能根本不是objdump,而是llvm-objdump。您可以使用objdump --help,但实际上并没有告诉您提供英特尔样式输出的选项,该选项似乎是-x86-asm-syntax = intel。叹。 (5认同)
  • 有没有一种简单的方法可以使“objdump”使用选项“-M intel”作为**永久默认值**? (3认同)

shi*_*oel 7

如果您还需要英特尔助记符代码(而不是AT&T助记符代码),您可以使用:

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

  • 从阅读手册,`-M intel-mnemonic` _implies_`intel`,而不是相反.我仍然不知道两者之间的差异.我做了'objdump -M intel -d file> intel`,`objdump -M intel-mnemonic -d file> intel-mnemonic`,然后`diff intel intel-mnemonic`并没有差别.我甚至尝试使用`-D`代替`-d`以防其他部分存在差异. (5认同)
  • 实际上,`-M intel`已经解决了这个问题.尝试用`-M intel`反汇编`0f b7 c3`序列,这将给你`movzx eax,bx`,而没有它objdump默认恢复到AT&T你得到'movzwl%bx,%eax`. (2认同)