title: Relationship between AL and DL or AX and DX when using int 21h output functions?
body: <p>I'm just curious with the relationship of al and dl because when I input a character and later I'll print it after printing a certain another character, the value of al suddenly changed. Here's the sample code below. Thanks! </p>
  
  <pre><code>cseg segment para 'code'
  assume cs:cseg; ds:cseg; ss:cseg; es:cseg
  org 100h
  start: jmp begin
  
  begin:  
  mov ax, 03h
  int 10h
  
  mov ah, 01h
  int 21h
  
  mov ah, 02h
  mov dl, '&amp;'
  int 21h
  
  mov ah, 02h
  mov dl, al
  int 21h
  
  int 20h
  cseg ends
  end start
  </code></pre>
  
  <p>The output should be like the:  </p>
  
  <pre><code>(char)&amp;(char)
  </code></pre>
  
  <p>But is appearing is:</p>
  
  <pre><code>(char)&amp;&amp;
  </code></pre>