错误:没有给出指令助记符后缀,也没有寄存器操作数

时间:2014-05-03 23:01:55

标签: assembly x86 assemblies disassembly gas

所以基本上我试图在Linux 32位上使用ELF binary重新使用从objdump反汇编的asm代码。

在反汇编的代码中,我看到了:

repnz scas

当我尝试重新编译它时(使用gcc),我收到了这个错误:

Error: no instruction mnemonic suffix given and no register operands

我认为这是一份法律指示,我只是不知道这里有什么不对......

有人能给我一些帮助吗?

1 个答案:

答案 0 :(得分:4)

正如错误消息所示,汇编器无法计算出操作数大小,因为没有后缀或寄存器操作数。您必须从上下文(或者在您的情况下是机器代码)中解决这个问题,但是您可能希望使用字节大小的操作,因此您应该使用scasb。其他选项与at& t一样,即scaswscasl分别为16或32位。