在第2卷第4章指令集参考M-U中,OUT指令的描述有这样一句话:
"使用DX寄存器作为源操作数可以访问0到65535之间的I/O端口">
我认为当使用OUT指令时,DX寄存器是指定IO端口而不是源操作数。
手册试图说的是真的,即使措辞有点不清楚。
使用立即数参数指定端口号(如OUT imm8,AX(时,由于立即数操作数为8位,因此只能使用端口0-255。
使用DX指定端口号(如OUT DX、EAX(时,可以使用所有65536个端口。
术语"源操作数"有点误导,因为在上面的示例中,EAX的内容输出到DX指定的端口。因此,DX的内容指定了目标端口号。