为什么 nasm 说 "invalid combination of opcode and oprands"?

Why does nasm say "invalid combination of opcode and oprands"?

我正在尝试 assemble 某个代码文件,其中 nasm 指向一行(如下所示)并表示 "invalid combination of opcode and oprands"。我不知道这条线有什么问题。

out edx,ecx

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

有人可以帮我吗?

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

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

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