LOADALL

LOADALLは、インテルのCPU 80286, 80386にあった非公開命令のひとつである
。

概要 
LOADALL命令は、その名前が示すように１命令でCPUのすべての内部レジスタをロードする。セグメントレジスタの可視部(visible part)に加えて、ディスクリプターキャッシュ部(cached part)もロードするため、公開されたx86命令ではできないことが可能である。
LOADALL命令の有用な使用例は、リアルモードのままで1Mバイト以上のメモリ領域をアクセスすることである。OS/2 1.x などがLOADALL命令を使用している。

80286版LOADALL
オペコードは、0Fh 05h。80286版LOADALLは、セグメントレジスタの値に関係なく、00800h–00866hのアドレスからデータを読み込む。 

80286では、LOADALL命令を使用しても、プロテクトモードからリアルモードに戻ることはできない。すなわち、MSWのPEビットはクリアできない。しかし、LOADALL命令があれば、リアルモードのままで1MB以上のメモリにアクセスすることができ、プロテクトモードに移行する必要はなくなる。

80386版LOADALL
オペコードは、0Fh 07h。 80386版LOADALLは、アドレスES:EDIからデータを読み込む。ESは、ディスクリプターキャッシュ部ではなく、ESの可視部が使用される。

脚注

参考文献 
 Robert L.Hummel著 槌田浩一訳 80x86/80x87ファミリー・テクニカルハンドブック　技術評論社　ISBN 4-87408-588-1

x86アーキテクチャ