segmented address spaceAn address space logically divided into sections, called segments. To access a particular memory location, a program must specify both the segment number and the offset within that segment. In contrast, a flat address space consists of simple memory addresses that start at 0 and increment to the maximum address.
Intel's 16-bit x86 architecture uses a segmented addressing model, and consequently so do DOS and older versions of Windows. Starting with 80386 microprocessor, however, the x86 architecture supports a flat addressing architecture. Newer versions of Windows, including Windows 95, Windows 98 and Windows NT, use a flat addressing scheme. The Mac OS has always used a flat addressing model.
In some cases, it's necessary to convert from one addressing model to another. This is called thunking.