1 .输入指令 IN
输入指令用来从指定的外设寄存器取信息送入累加器。它有四种形式:
( 1 )语句格式: IN AL , PORT
功能:( PORT ) → AL
( 2 )语句格式: IN AX , PORT
功能:( PORT ) → AX
( 3 )语句格式: IN AL , DX
功能:( [DX] ) → AL
( 4 )语句格式: IN AX , DX
功能:( [DX] ) → AL
2 .输出指令 OUT
输出指令用来把累加器的内容送往指定的外设存储器,它有四种形式:
( 1 )语句格式: OUT PORT , AL
功能:( AL ) → PORT
( 2 )语句格式: OUT PORT , AX
功能:( AX ) → PORT
( 3 )语句格式: OUT DX , AL
功能:( AL ) → [DX]
( 4 )语句格式: OUT DX , AX
功能:( AX ) → [DX]
在 80x86 中,所有 I/0 端口与 CPU 之间的通信都由 IN 和 OUT 指令来完成。其中 IN 完成从 I/0 到 CPU 的信息传送,而 OUT 则完成从 CPU 到 I/0 的信息传送。 CPU 只能用累加器 (AL 或 AX) 接收或发送信息。外部设备最多可有 65536 个 I/0 端口,端口号为 0000H-FFFFH 。其中前 256 个端口可以直接在指令中指定,当端口大于等 256 时,必须先把端口号放到 DX 寄存器中,然后再用 IN 或 OUT 来传送信息。
例: IN AX , 28H
MOV DA , AX
这两条指令把端口 28 的内容经过 AX 传送到存储单元 DA 中。
例: OUT 5 , AL
这条指令从 AL 寄存器输出一个字节到端口 5.
全站搜索