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?