I am developing a simple bare-metal OS, and my function for printing strings works only on some strings (eg "Hello World") but not others (eg "Press F1 for help")
[ORG 0x7C00]
msg db "Press F1 for help",0
main:
    mov AH, 00h
    int 16h
    cmp AH, 0x3B
    je help 
    jmp main
help:
    mov si, msg
    call print
    jmp main
; Print library, invoke with "call print" example:
; msg db "Foobar",0
; mov SI, msg
; call print
%include "printlib.inc"
 
return:
    ret
times 510-($-$$) db 0;
db 0x55
db 0xAA
printlib.inc:
print:
    mov ax, 0x07c0
    mov ds, ax
    cld
    jmp .loop
.loop:lodsb
    or al, al ; zero=end or str
    jz .retn   ; get out
    mov ah, 0x0E
    mov bh, 0
    int 0x10
    jmp .loop
.retn:
    ret
 
     
    