Section courante

A propos

Section administrative du site

Assembleur 80x86

VMCALL

INTEL VMX (Virtualisation) Call to VM Monitor

Syntaxe

VMCALL

Description

Cette instruction permet de fournir un mécanisme invité logiciel pour appeler un service dans un moniteur VM.

Algorithme

SI pas dans opération VMX ALORS
   EXCEPTION #UD
SINON mais pas l'opération racine ALORS
   quitte VM
SINON SI (RFLAGS.VM = 1) ou (IA32_EFER.LMA = 1 et CS.L = 0) ALORS
   EXCEPTION #UD
SINON SI CPL > 0 ALORS
   EXCEPTION #GP(0)
SINON dans SMM ou le processeur logique ne support pas le traitement multiple moniteur de SMI et SMM ou le bit valide dans le IA32_SMM_MONITOR_CTL MSR vaut 0 ALORS
   VMfail (VMCALL exécuté dans une opération racine VMX
SINON SI traitement multiple moniteur de SMI et SMM est actif ALORS
   quitte le SMM VM
SINON SI pointeur courant VMCS n'est pas valide ALORS
   VMfailInvalid
SINON SI lance l'état du VMCS courant est fixé à 1 ALORS
   VMfailValid(VMCALL avec VMCS vaut 1)
SINON SI champs de contrôle de sortie VM n'est pas valide ALORS
   VMfailValid (VMCALL avec champs de contôle de sortie VM)
SINON
   entrer dans SMM
   lecture de l'identificateur de révision dans MSEG
   SI identificateur de révision ne correspondant pas au processeur supporté ALORS
      laisse SMM
      VMfailValid(VMCALL avec identificateur de révision MSEG incorrect)
   SINON
      lecture des champs de fournitures du moniteur SMM dans MSEG
      SI champs de fournitures est invalide ALORS
         laisse SMM
         VMfailValid(VMCALL avec fourniture de moniteur SMM invalide)
      SINON
         active le traitement multiple moniteur du SMI et SMM
      FIN SI
   FIN SI
FIN SI

Mnémonique

Instruction Opcode Description
VMCALL 0Fh 01h C1h Cette instruction permet de fournir un mécanisme invité logiciel pour appeler un service dans un moniteur VM.

Références

Intel® 64 and IA-32 Architectures Software Developer’s Manual Volume 2B: Instruction Set Reference, N-Z, Edition Intel, Mars 2010, Publication No. 253667-034US, page 577 à 579.

Dernière mise à jour : Samedi, le 2 août 2014