Another mechanism could be to simply ignore reads/writes to bottom 64k, going on the theory this isn't the first or the last bit of code that accidentally scribbles something around address 0. Something like that could be opt-in, but enabled by default for running x86 code.