13.07.2015 Views

iAPX 286 Operating System Writers Guide 1983

iAPX 286 Operating System Writers Guide 1983

iAPX 286 Operating System Writers Guide 1983

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

interUSING HARDWARE PROTECTION FEATURES7 o 7 oRESERVED FOR <strong>iAPX</strong> 386MUST BE ZERO+6P DPL 1 1 C R A BASE.3_,.+4BASE,s_o +2LIMIToP - PRESENT BITDPL - DESCRIPTOR PRIVILEGE LEVELC -,- CONFORMINGR - READABLEA - ACCESSED121960-47Figure 2-3_ Executable Segment DescriptorSEGMENT BASEThis field contains the physical address of the beginning of the memory segment referred to by thisdescriptor. The 24 bits of this address give the 80<strong>286</strong> a 16-megabyte range of real addresses. This isthe only place that physical addresses are used. All other addresses are relative to the physical addressesstored in descriptors, making it possible to relocate executable and data segments without making anychanges to the relocated segments or to code that refers to the segments. The only changes necessaryto relocate segments are changes to the physical addresses stored in descriptor tables.You can control the actual location of segments by means of specifications to the Builder or by meansof the algorithms your operating system uses to allocate memory to segments that are loadeddynamically.SEGMENT LIMITSegment limits prevent accidental reading or writing beyond the space allocated to a segment. Thevalue of this field is one less than the length of the segment (in bytes) relative to the beginning of thesegment. The 16 bits of this field make it possible to have segments up to 64K bytes long. The hardwareautomatically checks all addressing operations to ensure that they do not exceed the segment limit ofthe segment to which they refer. This protects other segments from such common programming errorsas runaway subscripts.2-4 121960-001

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!