The selectors which are eligible for this thunk are LDT selectors which
are PL=3.
In this case, all three low-order bits are 1. Because of this, one can
shift the selector three bits to the right, or divide by 8, without loss
of information. The resulting number is the high-order word of the 32-bit
address because of address tiling.
For example, address 000F:00BA can be thunked from 16:16 to 0:32 as follows:
0 0 0 F : 0 0 B A <--- Hex Sel:Offset 0000 0000 0000 1111 0000 0000 1011 1010 <--- Binary shift the selector 3 bits to the right, which gives 0000 0000 0000 0001 0000 0000 1011 1010 <--- Binary 0 0 0 1 0 0 B A <--- Linear Address Note that the lower 16 bits, or offset, are unchanged.
A stack may require alignment, because a 32-bit stack is built on double-word boundaries, with two low order zero bits in the address of each element, whereas a 16-bit stack is aligned only on a word boundary.