X86 memory segmentation: Difference between revisions

Content deleted Content added
80386 protected mode: Copy edit (self-explanatory).
Practices: Citation needed for the exception. Which instruction that uses DS by default cannot take an override prefix? Are these only 80286 or later CPU instruction?
Line 103:
 
* All CPU instructions are implicitly fetched from the ''[[code segment]]'' specified by the segment selector held in the CS register.
* Most memory references come from the ''[[data segment]]'' specified by the segment selector held in the DS register. These may also come from the extra segment specified by the segment selector held in the ES register, if a segment-override prefix precedes the instruction that makes the memory reference. Most, but not all, instructions that use DS by default will accept an ES override prefix.{{fact}}
* Processor [[run-time stack|stack]] references, either implicitly (e.g. '''push''' and '''pop''' instructions) or explicitly ([[stack-based memory allocation|memory accesses using the (E)SP or (E)BP registers]]) use the ''stack segment'' specified by the segment selector held in the SS register.
* [[x86 string instructions|String instructions]] (e.g. '''stos''', '''movs'''), along with data segment, also use the ''extra segment'' specified by the segment selector held in the ES register.