title: Is it possible to use 8 and 16 bit pointers on modern machines?
body: <p>See title. I'm considering building a "no-collision" hash-table - yes, I know it sounds dumb but I want to try it. I would have to have an enormous array of pointers to a relatively small patch of memory which would also consist of just pointers to the actual searchable data. </p>
  
  <p>So I want the actual enormous array of hash keys to take up as little memory as possible, which is why 16 bit pointers would be nice. That would give me a 64 kb memory space to reference. Or even have a system of tiny tables referring small 256 byte sections of memory arranged in some cunning system. </p>
  
  <p>Are less-than-32-bit pointers in any way possible in Visual C++ running on Windows 7? Using assembler, perhaps?</p>