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
.data
msg1 db ‘Enter the num’ , ‘0’
.code

start:
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
out_:			  
 pop ax
 pop bx
 pop cx
 pop dx
 ret
end start

please help
thank you

//