以8086/8088为例,其I/O端口采用独立编制方式,可有64K字节端口或32K个字节端口。指令系统中设有专门的输入指令IN和输出指令OUT来访问端口。I/O端口的寻址方式有直接端口寻址和间接端口寻址两种。
直接端口寻址是在指令中直接给出要访问的端口地址,端口地址用一个8位二进制数表示,则此时最多允许寻址256个端口。
例如:IN AL, 40H 从端口地址为40H的端口中取出字节送给寄存AL
OUT 50H, AL 将AL中的内容输出到端口地址为50H的端口中
当访问的端口地址数大于等于256时,直接端口寻址不能满足要求,而要采用间接端口寻址方式。此时,端口的地址必须由DX寄存器指定,允许寻址64K(0~65535)个端口。
例如:MOV DX, 309H
IN AL,DX 从端口地址为309H的端口中取出字节给AL
MOV DX,206H
OUT DX,AL