Section courante

A propos

Section administrative du site

Assembleur 80x86

SYSCALL

AMD K6-2+ Fast System Call

Syntaxe

SYSCALL

Description

Cette instruction permet d'effectuer le transfert du contrôle d'un point d'entrée fixe au système d'exploitation.

Algorithme

SYSCALL_START:
   SI MSR_EFER.SCE = 0 ALORS
      EXCEPTION #UD()
   FIN SI
   SI LONG_MODE ALORS
      SYSCALL_LONG_MODE
   SINON
      SYSCALL_LEGACY_MODE
   FIN SI

SYSCALL_LONG_MODE:
   RCX.q ← next_RIP
   R11.q ← RFLAGS
   SI mode 64 bits ALORS
      temp_RIP.q ← MSR_LSTAR
   SINON
      temp_RIP.q ← MSR_CSTAR
      CS.sel ← MSR_STAR.SYSCALL_CS ∩ FFFCh
      CS.attr ← 64-bit code,dpl0
      CS.base ← 00000000h
      CS.limit ← FFFFFFFFh
      SS.sel ← MSR_STAR.SYSCALL_CS + 8
      SS.attr ← pile 64 bits,dpl0
      SS.base ← 00000000h
      SS.limit ← FFFFFFFFh
      RFLAGS ← RFLAGS ∩ ¬ MSR_SFMASK
      RFLAGS.RF ← 0
      CPL ← 0
      RIP ← temp_RIP
   FIN SI
   FIN

SYSCALL_LEGACY_MODE:
   RCX.d ← prochain RIP
   temp_RIP.d ← MSR_STAR.EIP
   CS.sel ← MSR_STAR.SYSCALL_CS ∩ FFFCh
   CS.attr ← code 32 bits,dpl0
   CS.base ← 00000000h
   CS.limit ← FFFFFFFFh
   SS.sel ← MSR_STAR.SYSCALL_CS + 8
   SS.attr ← pile 32 bits,dpl0
   SS.base ← 00000000h
   SS.limit ← FFFFFFFFh
   RFLAGS.VM,IF,RF ← 0
   CPL ← 0
   RIP ← temp_RIP
   FIN

Mnémonique

Instruction Opcode Description
SYSCALL 0Fh 05h Cette instruction permet d'effectuer le transfert du contrôle d'un point d'entrée fixe au système d'exploitation.

Voir également

Instruction assembleur 80x86 - Instruction SYSENTER
Instruction assembleur 80x86 - Instruction SYSEXIT
Instruction assembleur 80x86 - Instruction SYSRET

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 492 à 493.

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