端口访问指令in和out

端口访问指令in和out

Content #

in指令单字节形式:

in al, dx ;机器码0xEC
in ax, dx ;机器码0xED

指令的目的操作数必须是AL或AX。之所以机器码只有一个字节,是因为不允许使用其它通用寄存器。

in指令的双字节形式:

in al, 0xf0 ;机器码0xE4F0
in ax, 0x03 ;机器码0xE503

前一字节是操作码0xE4或0xE5,分别指示8位或16位端口访问。后一字节为立即数,指示端口号。

out指令与in指令正好相反,目的操作数可以是8位立即数或DX,源操作数必须是 AL或AX。

out 0x37, al ;8位
out 0xf5, ax ;16位
out dx, al ;8位,端口号在dl中
out dx, ax ;16位,端口号在dx中

From #