我正在使用 https://defuse.ca/online-x86-assembler.htm#disassembly 将 x86 指令组装成机器代码。 (编者注:它在 .intel_syntax noprefix 模式下使用 GAS。)

下面的代码抛出 Error: no such instruction: `movl $0xdeadbeef,0x08048c5f'

movl $0xdeadbeef,0x08048c5f

但以下汇编代码工作正常
movb $0xdeadbeef, 0x08048c5f
movw $0xdeadbeef, 0x08048c5f

最佳答案

您似乎在为您的 movl 使用 AT&T 语法,但您链接的页面指出它需要 Intel 语法。

如果我正确理解您的意图,那么您想要的指令的正确语法是;

MOV DWORD PTR ds:0x08048c5f, 0xdeadbeef

(将双字值 0xdeadbeef 存储在地址 0x08048c5f 处)

关于assembly - defuse.ca 在线 GAS 汇编器接受 movb 和 movw 的 AT&T 语法,但不接受 movl?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26332833/

10-11 15:42