11. [Protected Mode] call gate

1. call gate process

  Instruction format: CALL CS: EIP (EIP is discarded)

Steps:

  1.   The check value CS of the GDT, find the corresponding segment descriptor, the call gate descriptor is a
  2. Call gate descriptor select another code segment stored in the sub-section
  3. Segment, segment selectors .BASE + offset address pointing to a real address is performed

2. The gate descriptor

S bit must be 0; 0 is the only system descriptor

TYPE is 1100 bits when it is gate descriptor;

 
   

 

 

The address code to be executed is true: Segment Selecotor selection sub-segment by the BASE + Offset Offset in Segment combining two

 

3. How to build himself a call gate?

First write the high byte:

   Bits 31-16 are offset so that they did not know 0000 instead of 0

        Bits 16-12 p bits (segment descriptor is valid) must be set to 1 DPL (written under the ring identity code access 3) is a combination of 11 i.e. E 1110

    11-8 bit Type field (if it is a call gate) must be 1100 is C 

      7-5 defaults 0

    4-0-bit call gate parameters here temporarily fill 0

Low byte:

   Bits 31-16 selectors (and may be disposed not to mention the right to provide the right) does not provide rights: the right to mention 001B: 0008 (split selectors check table)

    15-0 is a bit high byte offset and combined into a 31-bit offset address -16: 0 in place so they did not know 0000

Combination completed: 0000EC00 00080000

Modify the contents of the instruction eq:

kd> eq address content

 

 

4. Call Door Summary:

 

Guess you like

Origin www.cnblogs.com/hanhandaren/p/11202497.html