EMM386 is a device driver used by DOS/Win3.1 and Win95 for a few purposes:
1) Loading TSRs and Device Drivers high to preserve conventional memory (0-640K is conventional RAM, 641K-1024K is the Upper Memory Area, originally used for ROM, RAM on perhipheral devices, and memory-mapped input output. Terribly inefficient, since most of that space was actually unused.)
2) Running applications (Windows 3.1 and 95) above 1MB in Extended Memory.