As I understand it, not all "volatile" locations are that way only because some piece of external hardware is going to change them; even if they were, there's no guarantee that you can specify that a fixed range of addresses (other than, say, 0x00000000 - 0xffffffff on a machine with 32-bit addresses) are potentially volatile and that no others are.