Privileged Instructions



  • Hallo folgendes habe ich eben in der:

    Intel® 64 and IA-32 Architectures Software Developer’s Manual Volume 3A: System Programming Guide, Part 1

    gefunden.

    5.9 PRIVILEGED INSTRUCTIONS
    Some of the system instructions (called “privileged instructions”) are protected from
    use by application programs. The privileged instructions control system functions
    (such as the loading of system registers). They can be executed only when the CPL is
    0 (most privileged). If one of these instructions is executed when the CPL is not 0, a
    Figure 5-14. MSRs Used by SYSCALL and SYSRET
    63 32 31 0
    63 0
    63 0
    Target RIP for 64-bit Mode Calling Program
    SYSRET CS and SS SYSCALL CS and SS
    48 47
    IA32_STAR
    IA32_LSTAR
    IA32_FMASK
    32 31
    Reserved SYSCALL EFLAGS Mask
    Reserved
    5-34 Vol. 3A
    PROTECTION
    general-protection exception (#GP) is generated. The following system instructions
    are privileged instructions:
    • LGDT — Load GDT register.
    • LLDT — Load LDT register.
    • LTR — Load task register.
    • LIDT — Load IDT register.
    • MOV (control registers) — Load and store control registers.
    • LMSW — Load machine status word.
    • CLTS — Clear task-switched flag in register CR0.
    • MOV (debug registers) — Load and store debug registers.
    • INVD — Invalidate cache, without writeback.
    • WBINVD — Invalidate cache, with writeback.
    • INVLPG —Invalidate TLB entry.
    • HLT— Halt processor.
    • RDMSR — Read Model-Specific Registers.
    • WRMSR —Write Model-Specific Registers.
    • RDPMC — Read Performance-Monitoring Counter.
    • RDTSC — Read Time-Stamp Counter.
    Some of the privileged instructions are available only in the more recent families of
    Intel 64 and IA-32 processors (see Section 19.13, “New Instructions In the Pentium
    and Later IA-32 Processors”).
    The PCE and TSD flags in register CR4 (bits 4 and 2, respectively) enable the RDPMC
    and RDTSC instructions, respectively, to be executed at any CPL.
    

    Jetzt wundere ich mich gerade warum da der Befehl mov mit aufgelistet wird.
    mov benötigt doch nicht irgendwelche speziellen Previlegien den Befehl kann man doch immer ausführen.

    Oder versteh ich da was falsch ?


  • Mod

    nasm* schrieb:

    Jetzt wundere ich mich gerade warum da der Befehl mov mit aufgelistet wird.
    mov benötigt doch nicht irgendwelche speziellen Previlegien den Befehl kann man doch immer ausführen.

    Oder versteh ich da was falsch ?

    Steht doch da: solche mov-Instruktionen, die Daten von oder zu den Debugregistern transtportieren, sind priviligiert. Für normale Allerwelts-movs gilt das nat. nicht.




Anmelden zum Antworten