機械語において、OUT命令とは、指定したI/Oアドレスに割り当てられている8個のI/Oポートの出力端子としての状態(8ビット)を任意の状態にする命令のことです。
OUT命令は、ポートマップドI/Oのプロセッサで利用されます。
メモリマップドI/Oでは、I/Oポートが割り当てられているメモリアドレスをコピー先として、ストア命令で指定することにより、OUT命令と同じことができます。
OUT命令では、少なくとも以下の二つのオペランドを指定します。
・I/Oアドレスをレジスタか即値で指定するオペランド
・8個のI/Oポートの出力端子としての状態を表したレジスタを指定するオペランド
機械語の命令の実行を基礎として、OUT命令は、以下のように実行されます。
1. 「レジスタAを指定するオペランド」を制御信号として、レジスタAの値がI/Oアドレスバスに出力される。(詳細は、レジスタの指定を参照)
2. 「レジスタBを指定するオペランド」を制御信号として、レジスタBの値がI/Oデータバスに出力される。
3. I/Oアドレスバスの値に対応した8個のI/Oポートの入力にI/Oデータバスの値が入力される。
4. クロックの立ち上がりエッジでその複数のI/OポートにI/Oデータバスの値が書き込まれる。
1. 「即値を指定するオペランド」の値がI/Oアドレスバスに出力される。(詳細は、即値の指定を参照)
2. 「レジスタBを指定するオペランド」を制御信号として、レジスタBの値がI/Oデータバスに出力される。
3. I/Oアドレスバスの値に対応した8個のI/Oポートの入力にI/Oデータバスの値が入力される。
4. クロックの立ち上がりエッジでその複数のI/OポートにI/Oデータバスの値が書き込まれる。