1 .输入指令 IN 2 .输出指令 OUT
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.
|