Global Descriptor Table: Difference between revisions
m
Change flag names to be more in line with the intel manual.
[unchecked revision] | [unchecked revision] |
Revolution (talk | contribs) (Added section to make clear that the format of system segments is different from usual segments.) |
Revolution (talk | contribs) m (Change flag names to be more in line with the intel manual.) |
||
Line 88:
!style="width: 12.5%;"|0
|-
|'''
|}
* '''
* '''
* '''S:''' Descriptor type bit. If clear ('''0''') the descriptor defines a system segment (eg. a [[Task_State_Segment|Task State Segment]]). If set ('''1''') it defines a code or data segment.
* '''
* '''DC:''' Direction bit/Conforming bit.
** For data selectors: Direction bit. If clear ('''0''') the segment grows up. If set ('''1''') the segment [[Expand_Down|grows down]], ie. the '''Offset''' has to be greater than the '''Limit'''.
Line 103:
** For code segments: Readable bit. If clear ('''0'''), read access for this segment is not allowed. If set ('''1''') read access is allowed. Write access is never allowed for code segments.
** For data segments: Writeable bit. If clear ('''0'''), write access for this segment is not allowed. If set ('''1''') write access is allowed. Read access is always allowed for data segments.
* '''
{| class="wikitable"
Line 113:
!style="width: 25%;"|0
|-
|'''
|Reserved
|}
* '''
* '''
* '''L:''' Long-mode code flag. If set ('''1'''), the descriptor defines a 64-bit code segment. When set, '''Sz''' should always be clear. For any other type of segment (other code types or any data segment), it should be clear ('''0''').
Line 139:
!style="width: 12.5%;"|0
|-
|'''
|}
|