Color	       db 0
Counter        db 0
LastColor      db 0
SizeFile       dd 0
;LitlCounter    db 0
;LitlColor      db 0
save_image:
	   ;mov esi,addres_of_file_which_need_compress
	   ;mov edi,addres_where_need_to_save_compressed_file
	   ;mov ecx,size_of_file_which_need_compress
	   mov dl,byte [esi]
	   and dl,0xff
	   mov [LastColor],dl
	   mov [Counter],byte 1
	   mov [SizeFile],0
	   xor edx,edx
	   inc esi
  NextColor:;ç¨â ¥¬ ­®¢ë© 梥⠨§ â ¡«¨æë
	   mov dl,byte [esi]
	   and dl,0xf
	   mov [Color],dl
	   cmp dl,[LastColor]
	   jne Different
	   ;㢥«¨ç¨¢ ¥¬ áç¥â稪 ­  1 ¨ ᬮâਬ ¥£® §­ ç¥­¨¥
	   inc [Counter]
	   cmp [Counter],16
	   jl total
	   ;áç¥â稪 à ¢¥­ 16,§­ ç¨â ­ã¦­® á®åà ­¨âì ¯®á«¥¤®¢ â¥«ì­®áâì
	   dec [Counter]
	   jmp Different
	   ;’¥¯¥àì ⥪ã騩 梥â áâ « áâ àë¬,¯®í⮬ã á®åà ­¨¬ ¥£® ª ª áâ àë©.
	   ;Ž¡­ã«¨¬ (ᤥ« ¥¬ à ¢­ë¬ 1) áç¥â稪 ¯®¢â®à¥­¨© 梥â (counter)
	   xor eax,eax
	   and [Counter],0
	   mov al,[Color]
	   mov [LastColor],al
	   xor eax,eax
	   jmp total
  Different:;¯à®ç¨â ­­ë© 梥⠭¥ ᮢ¯ ¤ ¥â á® áâ àë¬
	   ;§­ ç¨â ­ã¦­® á®åà ­¨âì áâ àë© ¨ ãáâ ­®¢¨âì §­ ç¥­¨ï ¤«ï ­®¢®£®
	   ;
	   ;á®å࠭塞 áâ àë© æ¢¥â
	   dec [Counter]
	   call SaveinByte
	   ;add [SizeFile],1
	   inc edi
	   ;ãáâ ­ ¢«¨¢ ¥¬ §­ ç¥­¨ï ⥪ã饣® æ¢¥â  ª ª áâ à®£®
	   mov dl,[Color]
	   mov [LastColor],dl
	   mov [Counter],1
     total:
	   xor edx,edx
	   mov dl,[Color]
	   mov [LastColor],dl
	   inc esi 
	   dec ecx
	   cmp	ecx,0
	   jne NextColor
	   ;áç¥â稪 ¬®¦¥â ¡ëâì ­¥¯ãá⮩,¯®í⮬ã çâ®¡ë ­¥ â¥àïâì ¡ ©â®¢
	   ;á®åà ­¨¬ §­ ç¥­¨¥ áç¥â稪  ¨ ¯®¢â®à塞®¥ §­ ç¥­¨¥
	   call SaveinByte
	   ret
SaveinByte:xor eax,eax
	   xor ebx,ebx
	   mov al,[Counter]
	   shl al,4
	   mov bl,[LastColor]
	   or al,bl
	   mov [edi],al
	   inc [SizeFile]
	   ret
;-----------------------------------------------------------------------
LitlCounter db 0
LitlColor   db 0
      unpakin:
           xor edx,edx
NextLitlColor:xor edx,edx
	   mov dl,byte[esi]
	   xor eax,eax
	   xor ebx,ebx
	   mov al,dl
	   mov bl,al
	   shr al,4
	   and al,0xf
	   mov [LitlCounter],al
	   and bl,0xf
	   mov [LitlColor],bl
	   xor eax,eax
	   xor ebx,ebx
;-------------------------------
	   mov al,[LitlColor]
       beg:mov [edi],al
	   add edi,1
	   dec [LitlCounter]
	   cmp [LitlCounter],-1
	   jne beg
	   inc esi
	   dec ecx
	   jnz NextLitlColor
	   ret