LOADALL

From Wikipedia, the free encyclopedia

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

概要

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

80286版LOADALL

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

さらに見る Address, number of bytes ...
Addressnumber of bytesregisterregisterregisterregister
008006not used
008062MSW (machine status word)
0080814not used
008162TR (task register)
008182flags
0081A2IP (instruction pointer)
0081C2LDTR (local descriptor table register)
0081E4x2DS (data segment)SS (stack segment)CS (code segment)ES (extra segment)
008264x2DI (destination index)SI (source index)BP (base pointer)SP (stack pointer)
0082E4x2BXDXCXAX
008364x6ES descriptor cacheCS descriptor cacheSS descriptor cacheDS descriptor cache
0084E4x6GDTR (global descriptor table register)LDT descriptor cacheIDTR (interrupt descriptor table register)TSS descriptor cache
閉じる

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

80386版LOADALL

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

さらに見る Address, number of bytes ...
Addressnumber of bytesregisterregisterregisterregister
ES:EDI+004CR0 (control register 0)
ES:EDI+044EFLAGS
ES:EDI+084EIP (instruction pointer)
ES:EDI+0C4x4EDI (destination index)ESI (source index)EBP (base pointer)ESP (stack pointer)
ES:EDI+1C4x4EBXEDXECXEAX
ES:EDI+2C2x4DR6DR7
ES:EDI+344TR (task register)
ES:EDI+384LDTR (local descriptor table register)
ES:EDI+3C4x2GS (extra segment)not usedFS (extra segment)not used
ES:EDI+444x2DS (data segment)not usedSS (stack segment)not used
ES:EDI+4C4x2CS (code segment)not usedES (extra segment)not used
ES:EDI+544x12TSS descriptor cacheIDT descriptor cacheGDT descriptor cacheLDT descriptor cache
ES:EDI+844x12GS descriptor cacheFS descriptor cacheDS descriptor cacheSS descriptor cache
ES:EDI+B42x12CS descriptor cacheES descriptor cache
閉じる

脚注

参考文献

Related Articles

Wikiwand AI