Data pointers can be near, far, or huge:
Option | Size |
/Axnx | Near data pointers |
/Axfx | Far data pointers |
/Axhx | Huge data pointers |
The /An (near) option tells the compiler to use 16-bit pointers and addresses for all data. This is the default for tiny-, small-, and medium-model programs.
The /Af (far) option specifies that all data pointers and addresses are 32 bits. This is the default for compact- and large-model programs.
The /Ah (huge) option specifies that all data pointers and addresses are far (32-bit) and that arrays are permitted to extend beyond a 64K segment. This is the default for huge-model programs.
With far data pointers, no single data item can be larger than a segment (64K) because address arithmetic is performed only on 16 bits (the offset portion) of the address. When huge data pointers are used, individual data items can be larger than a segment (64K) because address arithmetic is performed on both the segment and the offset.