title: Need some help printing strings in ASM program
body: <p>here is the code:</p>
  
  <pre><code> .model tiny
  
  ; assemble me this way
  ; ml /AT /c /Zm /coff /omf &lt;file name&gt;
  
  ; link me this way
  ; link2 /TINY &lt;obj name&gt;
  
  COMSEG SEGMENT
  org 7C00h
  
  .code
  start:
      MyStr BYTE "HelloWorld", '$'
  
      cld     ; Clear Direction Flag
      mov si, offset MyStr
  whileloop: 
      lodsb                   ;; While Hello[Si] != '$' 
      cmp al, '$'
      jne doproc
      jmp endwhileloop
      doproc: 
          mov ah, 0ah           ;;     Video operation in Ah to write
                               ;;           character in Al to screen.
          mov bh, 0            ;;     Alpha page 0
          mov cx, 1
          int 10h      
          jmp whileloop
  endwhileloop:
      jmp $                   
  
      db 510-($-start) dup (0)   ;Loads of zeroes
      dw 0AA55h  
  
  end start
  COMSEG ENDS
  </code></pre>
  
  <p>This code is only printing garbage to the cmd prompt. MASM, windows XP, running under 16 bit virtual machine. If someone could help me properly print out characters to the screen that would be great.</p>