16.02.2013 Aufrufe

24531904_j

24531904_j

24531904_j

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

INS/INSB/INSW/INSD—Input from Port to String<br />

オペコード 命令 説明<br />

6C INS ES:(E)DI, DX バイトをポート DX から ES:(E)DI に入力する。<br />

6D INS ES:DI, DX ワードをポート DX から ES:DI に入力する。<br />

6D INS ES:EDI, DX ダブルワードをポート DX から ES:EDI に入力する。<br />

6C INSB バイトをポート DX から ES:(E)DI に入力する。<br />

6D INSW ワードをポート DX から ES:EDI に入力する。<br />

6D INSD ダブルワードをポート DX から ES:EDI に入力する。<br />

説明<br />

こ れ ら の命令は、 ソ ー ス ・ オペラ ン ド ( 第 2 オペラン ド ) で指定された I/O ポー トからデ<br />

スティネーション・オペランド ( 第 1 オペラン ド ) にデータをコピーする。 ソース ・ オ<br />

ペラン ド は、 I/O ポー ト ・アドレス 0 ~ 65535 にアクセスできる よ うに、 DX レジスタで<br />

なければならない。 8 ビットのI/O ポー トにアクセスする場合は、 ポー ト ・サイズはオペ<br />

コードによって決まる。 16 ビッ トまたは32 ビッ トのI/O ポー トにアクセスする場合は、<br />

ポー ト ・サイズはオペランド ・サイズ属性によって決まる。<br />

デステ ィ ネーシ ョ ン ・ オペラン ド は、 ア ド レス ES:EDI のメモリ ・ ロケーションである。<br />

オペラン ド ・ サイズ属性が 16 の場合は、 DI レジスタがデスティネーション ・ インデッ<br />

クス ・ レジスタとして使用される。 ES セグメン ト は、 セグメン ト ・ オーバライ ド ・ プレ<br />

フィックスでは無効にできない。<br />

INSB、 INSW、 INSD ニーモニッ クは、 それぞれ INS 命令のバイ ト 、 ワ ー ド 、 ダブル ワ ー<br />

ド・バージョンの別名である。INS 命令では、 "ES:EDI" を命令の中で明示的に指定しな<br />

ければならない。<br />

バイ ト、 ワー ド、 またはダブルワー ドが I/O ポ ー ト か ら メ モ リ ・ ロ ケ ー シ ョ ン に転送 さ<br />

れた後、 EDI レジスタは EFLAGS レジスタ内のEF フ ラ グの設定に従 っ て自動的に イ ン<br />

クリメントまたはデクリメントされる。 (DF フラグが0 である場合、 EDI レジスタはイ<br />

ンクリメント される。 DF フラグが1 である場合、 EDI レジスタはデクリメント される。<br />

EDI レジスタは、 バイト操作の場合は 1、 ワー ド操作の場合は 2、 ダブルワー ド操作の場<br />

合は 4、 それぞれインク リ メン ト またはデク リ メン ト される。<br />

INS、 INSB、 INSW、 INSD 命令は、 前に REP プリフィックスを付けることにより、 ECX<br />

バイ ト、 ワー ド、 またはダブルワー ドのブロ ッ ク入力を行う こ とができる。<br />

これらの命令は、 プロセッサの I/O ア ド レ ス空間にあ る I/O ポー トのアクセスだけに有<br />

用である。<br />

I/O トランザクションは、すべての先行するデータ・メモリ操作の後で実行される。これ<br />

以降のデータ・メモリ操作は、I/O トランザクションを実行できない。<br />

Itanium ベース・システム環境では、I/O ポートの参照は、IOBase レジスタによって指<br />

定される 64 ビット仮想アドレスに、4K バイト仮想ページ当たり 4 ポートずつマッピン<br />

グされる。オペレーティング・システムは、Itanium アーキテクチャの TLB を利用して、<br />

任意の 4 つの I/O ポートへのパーミッションを付与または拒否できる。I/O ポート空間<br />

は、オペレーティング・システム・コードによって、任意の 64 ビット物理メモリ・ロ<br />

ケーションにマッピングできる。CFLG.io = 1 かつ CPL > IOPL の場合は、TSS を参照<br />

して、I/O パーミッションを与えるかどうかを決定する。CFLG.io = 0 または CPL

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!