Advertisement
Guest User

Untitled

a guest
Sep 19th, 2017
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ;---------------------------------------------------------
  2. ; Алгоритм RLE, для сжатия, если в а1 данные
  3. ;---------------------------------------------------------
  4. ; d0 - сравнивается с другими байтами
  5. ; d1 - количество копии байта
  6.  
  7. RLE_Compress:
  8.         moveq   #0,d1       ; сбросить указатель
  9.         move.b  (a1),d0     ; записать число
  10. Search_copy_of_byte:
  11.                addq.w  #1,a1
  12.                 cmpa.l  #EncodedRLEEnd,a1      ; поинтер дошёл до конца?
  13.                 beq     Finish_encrypt         ; если да, перейти
  14.         cmp.b   (a1),d0     ; это копия байта?
  15.         bne     To_encrypt  ; перейти, если нет
  16.         addq.b  #1,d1       ; прибавить 1 к указателю копии
  17.                 bra.w   Search_copy_of_byte     ; проверить следующие байты
  18.  
  19. To_encrypt:
  20.         move.b  d1,(a2)+         ; записать, сколько раз дублировать байт
  21.         move.b  d0,(a2)+         ; записать, какой дублировать байт
  22.                 bra.w   RLE_Compress     ; шифровать следующие байты
  23.  
  24. Finish_encrypt: rts
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement