为什么nasm说"操作码和oprands无效组合"?

时间:2015-02-10 02:06:07

标签: assembly x86 nasm

我试图组装某个代码文件,其中nasm指向一行(如下所示)并说"操作码和oprands"的无效组合。我不知道该线路有什么问题。

out edx,ecx

代码行将ecx中的地址发送到端口0xCF8 - edx中的值。

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:1)

out有两种形式,out <imm8>, al/ax/eaxout dx, al/ax/eax。您的指令与这些指令都不匹配,因此格式不正确。

更改您的代码,使您想要的值位于eax而不是ecx(可能就像mov eax, ecx一样简单)并使用第二种形式。

汇编程序消息通常不充分,因此请亲自参考指令。