所以基本上我试图在Linux 32位上使用ELF binary
重新使用从objdump
反汇编的asm代码。
在反汇编的代码中,我看到了:
repnz scas
当我尝试重新编译它时(使用gcc
),我收到了这个错误:
Error: no instruction mnemonic suffix given and no register operands
我认为这是一份法律指示,我只是不知道这里有什么不对......
有人能给我一些帮助吗?
答案 0 :(得分:4)
正如错误消息所示,汇编器无法计算出操作数大小,因为没有后缀或寄存器操作数。您必须从上下文(或者在您的情况下是机器代码)中解决这个问题,但是您可能希望使用字节大小的操作,因此您应该使用scasb
。其他选项与at& t一样,即scasw
或scasl
分别为16或32位。