8088CPU采用IO端口与存储器分别独立编址可寻址220=1M个内存单元内存范围00000~FFFFFh内存空间内存单元的地址有5种寻址可寻址216=64K个I/O端口IVO端口范围0000~FFFFHVO端口的地址由一个8位二进制数直接寻址VO或DX寄存器间接寻址空间
可寻址2 20= 1M个内存单元 内存范围00000 ~FFFFFh 内存单元的地址有5种寻址 可寻址2 16= 64 K个I/O端口 I/O端口范围0000 ~ FFFFH I/O端口的地址由 一个8位二进制数直接寻址 或DX寄存器间接寻址 8088CPU采用I/O端口与存储器分别独立编址 I/O 空 间 内 存 空 间
1.输入指令IN格式执行操作INAL, port(AL)→(port 端口)(AL)← (port 端口)INAX, port(AH) ← (port+1端口)INAL, DX(AL) ← ((DX)端口)(AL) ← ((DX)端口)INAX, DX(AH) ← (DX)+1 端口)port为数字形式的端口地址,大小为0~255或0~FFH
1. 输入指令IN 格式 执行操作 IN AL, port (AL) ← (port 端口) IN AX, port (AL) ← (port 端口) (AH) ← (port+1 端口) IN AL, DX (AL) ← ((DX)端口) IN AX, DX (AL) ← ((DX)端口) (AH) ← ((DX)+1 端口) port 为数字形式的端口地址, 大小为0~255 或0~FFH
例(1) JINAL . 28H若(28H端口)=10101111B执行后(AL)=(28H端口)=0AFHAX . 28H(2) IN若(28H端口)=1010 1111B(29H端口)=01010000B执行后(AL)=(28H端口))=0AFH(AH)=(29H端口)= 50HMOVDX, 300H(3)INAL DX若(300H端口)=69H执行后(AL)=(300H端口)=69H
例 (1) IN AL,28H 若 (28H端口) = 1010 1111B 执行后 (AL) = (28H端口) = 0AFH (2) IN AX,28H 若 (28H端口)= 1010 1111B (29H端口)= 0101 0000B 执行后 (AL) = (28H端口) = 0AFH (AH) = (29H端口) = 50H (3) MOV DX, 300H IN AL,DX 若 (300H端口)= 69H 执行后 (AL) = (300H端口) = 69H
2.输出指令OUT格式执行操作OUTport, AL(port端口) ←(AL)(port端口)←(AL)OUTport, AX(port+1端口) ←(AH)OUTDX, AL(DX)端口) ←(AL)((DX)端口)←(AL)OUTDX, AX(DX)+1端口) ←(AH)port为数字形式的端口地址,大小为0~255或0~FFH
2. 输出指令OUT port 为数字形式的端口地址, 大小为0~255 或0~FFH 格式 执行操作 OUT port, AL (port 端口) ←(AL) OUT port, AX (port 端口) ←(AL) (port+1 端口) ←(AH) OUT DX, AL ((DX)端口) ←(AL) OUT DX, AX ((DX)端口) ← (AL) ((DX)+1 端口) ←(AH)
例(1)OUT 21H, AL若(AL)= 1100 1100B执行后(21H端口) = 0CCHMOV DX. 21BH(2)OUT DX , AL若(AL)=10100110B执行后(21BH端口)=(AL)=0A6H
(1) OUT 21H, AL 若(AL)= 1100 1100B 执行后 (21H端口) = 0CCH (2) MOV DX , 21BH OUT DX, AL 若(AL)= 1010 0110B 执行后 (21BH端口)= (AL) = 0A6H 例