title: Getting a string to print via bios interrupt
body: <p>I'm learning assembly and of course I'm experimenting with the classic 0x10 bios interrupt. The resources I've looked at show using <code>lodsb</code> to print a string, so to understand that opcode I'm trying to mimic it's behavior. This works fine with <code>lodsb</code>, but not with what I have. What am I doing wrong?:</p>
  
  <pre>
  start:
      mov ah, 0Eh ;for bios interrupt
      mov si, text_string ;set source index to begining of text_string
  
  .repeat:
      ;I'm trying to emulate the behavior of lodsb to learn how it works:
      mov al, [si] ;put character at si in al register
      add si, 1 ;increment source index
  
      cmp al, 0 ;if the character is a zero (end of the string)
      je done ;end execution
  
      int 10h ;bios interrupt to put character on screen
      jmp .repeat
  
      text_string db 'Hello, World!', 0
  
  done:
      ret
  </pre>