The
data segment is generally for storage of
global variables, but is also for the
destination in
string operations such as
REP STOSx and
REP MOVSx, as well as
floating-point operations such as
FSTP. The other
segments are
cs (code),
es ('extra,' used as source in string operations and to stave off segment register starvation), and
fs and
gs (second/third 'extra' segments, on the 80386 and higher).
If Intel had done bigger paragraph sizes, x86 real mode wouldn't be so crappy.