running the code below generates a file with Welcome to jj Shashwat as content. what i didn't get is why does it writes  Shashwat at the end of the file, Shashwat is in a totally different variable. Any idea why does this happen?
section .text
   global _start         ;must be declared for using gcc
_start:  
   ;create the file
   mov  eax, 8
   mov  ebx, file_name
   mov  ecx, 0777        ;read, write and execute by all
   int  0x80             ;call kernel
   mov [fd_out], eax
   ; close the file
   mov eax, 6
   mov ebx, [fd_out]
   ;open the file for reading
   mov eax, 5
   mov ebx, file_name
   mov ecx, 2             ;for read/write access
   mov edx, 0777          ;read, write and execute by all
   int  0x80
   mov  [fd_out], eax
   ; write into the file
   mov  edx,len          ;number of bytes
   mov  ecx, msg         ;message to write
   mov  ebx, [fd_out]    ;file descriptor 
   mov  eax,4            ;system call number (sys_write)
   int  0x80             ;call kernel
   ; close the file
   mov eax, 6
   mov ebx, [fd_out]
   mov  eax,1             ;system call number (sys_exit)
   int  0x80              ;call kernel
section .data
        file_name db 'myfile.txt', 0
        msg db 'Welcome to jj', 0
        mgafter db ' Shashwat', 0
        lntwo equ $-mgafter
        len equ  $-msg
section .bss
        fd_out resb 1
        fd_in  resb 1
        info resb  26