title: Using registers and variables in 8086 asm programming
body: <p>I am starting to get to grips with asm programming but I feel I am missing something regarding the use of registers to store variables.<br />
  The issue that I have is that some instructions will modify other registers for internal reasons. In some cases I have used these registers to store application logic.<br />
  Is there any golden rule for how to use registers?</p>
  <p>For example: the following code changes the <code>DX</code> register and wipes out my current variable (also in <code>DX</code>).</p>
  <pre>
  mov ax, 04h
  mov bx, 02h
  mul bx
  </pre>
  <p>I did not want nor state that I wanted the <code>DX</code> register to get wiped out. What's going on here?</p>