Question: what is the difference between far and huge pointer?
Answer: far: a 32 bit pointer that contains a segment and an offset. Note that because segments can overlap, two different far pointers can point to the same address. huge: a 32 bit pointer in which the segment is "normalised" so that no two far pointers point to the same address unless they have the same value.