title: Why can't you set the instruction pointer directly?
body: <p><a href="http://en.wikipedia.org/wiki/X86_assembly_language" rel="noreferrer">The Wikipedia article about x86 assembly</a> says that "the IP register cannot be accessed by the programmer directly."</p>
  
  <p>Directly means with instructions like mov and add.</p>
  
  <p>Why not? What is the reason behind this? What are the technical restrictions?</p>