文档介绍:输入指令IN
IN AL,i8 ;字节输入:AL←I/O端口i8
IN AX,i8 ;字输入:AL←I/O端口i8,AH←I/O端口i8+1
IN AL,DX ;字节输入:AL←I/O端口[DX]
IN AX,DX ;字输入:AL←I/O端口[DX],AH←I/O端口[DX+1]
8086用于寻址外设端口有216 = 65536个(64K),端口号为0000H ~ FFFFH。每个端口用于传送外设的一个字节数据。
寻址前256个端口时,输入/输出指令可以用直接寻址,操作数i8即为端口号,其范围为00H ~ FFH。接寻址,其范围为0000H ~ FFFFH。
输入/输出指令还分成用AL进行的字节传送和用AX进行的字传送。实现字传送时,AL与i8或[DX]端口交换,AH与i8+1或[DX+1]端口交换。
:用字节输入指令从20h和21h端口输入一个字数据
in al,21h
mov ah,al
in al,20h
:用字输入指令从20h和21h端口输入一个字数据
in ax,20h
:用DX间接寻址从20h和21h端口输入一个字数据
mov dx,20h
in ax,dx
IN指令对应Debug的I指令(DEBUG的其他命令)
IN AL, 60H ;从端口60H读入一个字节到AL中
IN AX,20H;把端口20H、21H按“高高低低”组成的
字读入AX
MOV DX,2F8H
IN AL,DX;从端口2F8H读入一个字节到AL中
IN AX,DX;把端口2F8H、2F9H按“高高低低”组成
的字读入AX
OUT 61H,AL;把AL的内容输出到端口61H中
OUT 20H,AX;把AX的内容输出到端口20H、21H中
MOV DX, 3C0H
OUT DX,AL;把AL的内容输出到端口3C0H中
OUT DX,AX;把AX的内容输出到端口3C0H、3C1H中
输出指令OUT
OUT i8,AL ;字节输出:I/O端口I8←AL
OUT i8,AX ;字输出:I/O端口I8←AL,I/O端口i8+1←AH
OUT DX,AL ;字节输出:I/O端口[DX]←AL
OUT DX,AX ;字输出:I/O端口[DX]←AL,I/O端口[DX+1]←AH
输出指令OUT将CPU数据传送至外设。