in 指令用于从端口中读取数据,其一般形式是:
(1)in al, dx;
(2)in ax, dx。
只要用 in 指令,源操作数(端口号)必须是 dx;
而目的操作数是用 al,还是 ax,取决于 dx 端口指代的寄存器是 8 位宽度,还是 16 位宽度。
out 指令用于往端口中写数据,其一般形式是:
(1)out dx, al;
(2)out dx,ax;
(3)out 立即数, al;
(4)out 立即数, ax。
总结:
里面的只能用al、ax,其中al宽度8位,ax宽度16位。
外来的在in指令里必须dx,在out指令里也可立即数。
参考资料:
操作系统真象还原