Path: utzoo!attcan!utgpu!jarvis.csri.toronto.edu!mailrus!wuarchive!gem.mps.ohio-state.edu!ginosko!uunet!mcsun!ukc!edcastle!djm From: djm@castle.ed.ac.uk (D Murphy) Newsgroups: comp.lang.c Subject: 8086 pointers - summary Message-ID: <356@castle.ed.ac.uk> Date: 11 Sep 89 09:47:16 GMT Reply-To: djm@castle.ed.ac.uk (D Murphy) Organization: Edinburgh University Chemistry Lines: 16 In reply to my query a while ago about what a pointer on an 8086 machine actually gets compiled to, the answer is that in the models which keep all the data in one segment (tiny, small and medium) it is a 16 bit value which is used in DX etc as an offset to DS which (presumably) is set by the compiler. In the larger models, it is a 32 bit value, the most significant 2 bytes of which are used in DS. Overrides to the 16 bit pointers can be made by declaring: char far *foo; I'm sorry if I offended any purists by talking about a 20 bit pointer - I do know better but this is Intel's fault :-) Many thanks to those who replied. Murff.....