1. call gate process
Instruction format: CALL CS: EIP (EIP is discarded)
Steps:
- The check value CS of the GDT, find the corresponding segment descriptor, the call gate descriptor is a
- Call gate descriptor select another code segment stored in the sub-section
- 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: