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.