title: How is XCHG implemented in a 8086 processor?
body: <p>The book I'm reading on 8086 assembly states that</p>
  
  <pre><code>XCHG AX, VAR
  </code></pre>
  
  <p>is equivalent to:</p>
  
  <pre><code>MOV DX, AX        ; DX is a temporary register
  MOV AX, VAR
  MOV VAR, DX
  </code></pre>
  
  <p>Is it really using a data register, such as DX, and internally executing the equivalent of three move instructions or is it doing something else in a 8086?
  If the former case is true what happens to the data register content?</p>