s_seg segment para stack
  db 100 dup ("?")
  
  s_seg ends
  
  d_seg segment

EnterName       db      "Please Enter Your Name : ",10,13,'$'
Mess1           db      "Hello my friend  $";
Mess2           db      "  How are you feeling with ASM",10,13,'$'
NewLine         db      10,13,'$'
Buff            db      100, 100 DUP (0)  
 
    d_seg ends
  
  c_seg segment
  assume cs:c_seg , ds:d_seg , ss:s_seg
  
         main proc
         mov ax,d_seg
         mov ds,ax

        lea dx,EnterName
        mov ah,9
        int 21h
        
        lea dx,Buff
        mov ah,0Ah
        int 21h

        lea dx,NewLine
        mov ah,9
        int 21h
        
        lea dx,Mess1
        mov ah,9
        int 21h
        
        lea si,Buff     ; si points to begin of buffer
        inc si		; si points to lenth of entered string
        xor bx,bx	      ; put 0 in bx
        mov bl,[si]	; bl will contain the lenth of entered string
        inc bl
        mov byte ptr [si + bx],'$'   ; put end of string at the end
        mov dx,si
        inc dx              ;dx point to the entered name
        mov ah,9
        int 21h
        
        lea dx,Mess2
        mov ah,9
        int 21h
        
         mov ah,4ch
         int 21h
         
         main endp
         c_seg ends
         end main