我正在使用 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/