GLOBAL _start
    SEGMENT .text
_start:
     mov eax,4 ; N function=write
     mov ebx,1 ; N handle=1 (stdout)
     mov ecx, txt ; address of buf
     mov edx,16 ; number of byte
     int 80h

     mov eax,3 ; N function=read
     mov ebx,0 ; 0 handle=0 (stdin)
     mov ecx, buf ; address of buf
     mov edx,80 ; number of byte
     int 80h

     mov [len],eax ;save length buf
     mov byte [buf+1],'!'

     mov eax,4 ; N function=write
     mov ebx,1 ; N handle=1 (stdout)
     mov ecx, buf ; address of buf
     mov edx,[len] ; number of byte
     int 80h

     mov eax,1 ; function=exit
     int 80h 
     
SEGMENT .data
    buf times 80 db 0 ;
	len dd 0
	txt db 'Enter the text '