masm x8086

aim of this code is to simply print the string.

code is giving undesirable output i.e it does not print enter the number

.model small
.stack 100h

CR equ 13d
LF equ 10d
msg1 db ‘Enter the num’ , ‘0’

mov ax, @data
mov ds, ax

 mov ax, offset msg1
 call put_string
 mov ax,4c00h
 int 21h

put_string: ;mov ax, offset msg1

     push ax
 push bx
 push cx
 push dx
 mov bx, ax
 mov al, byte ptr [bx]
 put_loop:cmp al, 0
          je out_
		  call put_char
		  call nwln
		  inc bx
		  mov al, byte ptr [bx]
          jmp put_loop
 pop ax
 pop bx
 pop cx
 pop dx
end start

please help
thank you