Otevřít hlavní menu

LGDT/LIDT - zaveď registr tabulky globálních deskriptorů, zaveď registr tabulky deskriptorů přerušení

Verze z 4. 1. 2013, 18:02, kterou vytvořil Zdeno Sekerák (diskuse | příspěvky) (1 revízia: Assembler pismeno L,M)
(rozdíl) ← Starší verze | zobrazit aktuální verzi (rozdíl) | Novější verze → (rozdíl)
Instrukce
LGDT/LIDT - zaveď registr tabulky globálních deskriptorů, zaveď registr tabulky deskriptorů přerušení
Časování
11-12
Popis
Instrukce LGDT nebo LIDT zavádi 6 byte paměti referované efektívni adresou operandu do tabulky globálních deskriptorů nebo do tabulky deskriptorů přerušení. Pole LIMIT registru tabulky deskriptoru je zaváděno z prvního slova. Další tři byte jsou zavedeny do pole BASE uvedeného registru a poslední byte je ignorován. Tyto instrukce jsou určeny pro systémové software (OS) a v aplikačních programech nejsou používany.


Syntaxe
LGDT memory_operand


Ovlivňuje příznaky
žádné


Nedefinované příznaky
žádné


Výjimky v privilegovaném módu
V případe, že aktuálni privilegovaná úroveň není nulová, je generována všeobecná výjimka privilegovaného módu. Jestliže obsahuje registr SS neplatnou adresu, je generována výjimka chyba zásobníku. Jestliže je zdrojový operand registrem, je generována výjimka nedefinovaný operační kód. Jestliže registry CS, DS nebo ES obsahují neplatnou efektívni adresu operandu, je generována všeobecná výjimka přivilegovaného módu.


Výjimky v reálnem módu
Jestliže leží operand na offsetu OFFFFH, je generováno přerušení INT 13.


Příklad
LGDT MEM_WRD
LIDT MEM_WRD