The 8086 had four segment registers: CS - Code segment, used with IP register DS - Data segment SS - Stack segment, used with SP and BP registers ES - Extra segment, used with DI for string instructions as destination (DS:SI as source) You could override instructions dealing with memory with any of the segment registers:
If you were writing an emulator, what would you have it do if an interrupt occurred while in a REP operation with a segment override?
Just how accurately should an emulator match the behavior of the emulated processor?