title: Copying strings in assembly
body: <p>I'm learning assembly and I'm trying to make a method that would make strings in assembly.
  I started trying to copy one string to another and store the copy in a variable for potential future use.</p>
  
  <p>I'm using emu8086 and I get the following error:</p>
  
  <blockquote>
    <p>unknown opcode skipped: 64</p>
    
    <p>not 8086 instruction - not supported yet.</p>
  </blockquote>
  
  <pre><code>org 100h
  
  jmp start
  
  msg:    db      "Hello, World!", 0 
  a:      db       0 
  start: 
  
  
          mov     si,msg
          mov     di, a
          call    _make_str
          mov     a, di
          mov     dx, a
          mov     ah, 09h 
          int     21h 
  
          mov     ah, 0   
          int     16h 
  
          ret
  _make_str:      
      pusha
  _next:
          mov     al, [si]                  
          mov     [di], al                  
          inc     si
          inc     di
          cmp      al, 0                      
          jne    _next
          popa
          ret 
  </code></pre>
  
  <p>What this error means and what am I doing wrong?</p>