Section courante

A propos

Section administrative du site

Assembleur 80x86

LGS

INTEL 80386+ Load in GS

Syntaxe

LGS opérande_cible,opérande_source

Description

Cette instruction permet de copier une adresse de mémoire contenu sur 32 bits dans la paire de registre de segment FS et dans un registre d'offset spécifié.

Algorithme

Registre d'offset ← Source
Registre de segment GS ← Source + 2

Mnémonique

Instruction Opcode Description
LGS reg16, mem16:16 0Fh B5h /r Charge le GS:reg16 avec un pointeur long dans la mémoire. Invalide en mode 64 bits.
LGS reg32, mem16:32 0Fh B5h /r Charge le GS:reg32 avec un pointeur long dans la mémoire. Invalide en mode 64 bits.

Exceptions

Message Mode réel Virtuel 8086 Mode protégé Description
#UD(Opcode invalide) X X X L'opérande source est un registre.
    X Cette instruction est exécuté en mode 64-bits.
#NP(Sélecteur)     X Le registre DS, ES, FS ou GS est chargé avec un sélecteur de segment non-nulle et le segment est marqué comme non présent.
#SS(Pile) X X X Une adresse mémoire dépasse la limite du segment de pile ou n'est pas canonique
#SS(Sélecteur) X X X Le registre SS est chargé avec un sélecteur de segment non-nulle et le segment est marqué comme non présent.
#GP(Protection général) X X X Une adresse mémoire dépasse la limite du segment de données ou n'est pas canonique
    X Un segment de données nulle est utilisé comme référence mémoire
#GP(Sélecteur) X X X Un registre de segment est chargé, mais le descripteur de segment dépasse la limite du descripteur de la table.
X X X Un registre de segment est chargé et le bit TI de sélecteur de segment est fixé, mais le sélecteur LDT est un sélecteur nulle.
X X X Le registre SS est chargé avec un sélecteur de segment nulle dans un mode 64-bits ou avec CPL = 3.
X X X Le registre SS est chargé avec un sélecteur de segment RPL et le descripteur de segment DPL n'est pas égale au CPL.
X X X Le registre SS est chargé et le pointeur de segment n'est pas dans un segment de données écrivable.
X X X Le registre DS, ES, FS ou GS n'est pas chargé et le segment pointe sur des données ou un segment de code non-conforme, mais le RPL ou CPL est supérieur au DPL.
X X X Le registre DS, ES, FS ou GS n'est pas chargé et le segment pointe sur des données ou un segment de code en lecture.
#PF(Faute de page)   X X Une faute de page résultat de l'exécution de l'instruction
#AC(Vérifie l'alignement)   X X Un désalignement de la référence mémoire est effectué quand une vérification d'alignement est activé

Références

Intel® 64 and IA-32 Architectures Software Developer’s Manual Volume 2A: Instruction Set Reference, A-M, Edition Intel, Mars 2010, Publication No. 253666-034US, page 642 à 646.

Dernière mise à jour : Lundi, le 1 septembre 2014