It may be relatively safe to say that far pointers belong to the past when it comes to the application development level; however, it would not be right not to mention them here, as, after all, there are a few useful things we can do with it. Putting it simply, a far pointer combines a segment selector and an offset into the segment. Originating in the era of 16-bit modes of operation, surviving the 32-bit protected mode, far pointers have made it to the long mode, although they are hardly relevant, as, especially in long mode, all memory is considered to be a flat array and we are hardly going to use them.
The instructions used (some are obsolete) for loading a far pointer into the segment register: general-purpose register pairs are as follows:
- LDS: This loads the selector part of the far pointer into the DS
- LSS: This loads the selector part of the far pointer...