我试图组装某个代码文件,其中nasm指向一行(如下所示)并说"操作码和oprands"的无效组合。我不知道该线路有什么问题。
out edx,ecx
代码行将ecx中的地址发送到端口0xCF8 - edx中的值。
有人可以帮助我吗?
答案 0 :(得分:1)
out
有两种形式,out <imm8>, al/ax/eax
和out dx, al/ax/eax
。您的指令与这些指令都不匹配,因此格式不正确。
更改您的代码,使您想要的值位于eax
而不是ecx
(可能就像mov eax, ecx
一样简单)并使用第二种形式。
汇编程序消息通常不充分,因此请亲自参考指令。