
24.06.2008, 21:16
|
|
Banned
Регистрация: 13.09.2006
Сообщений: 523
С нами:
10346786
Репутация:
925
|
|
Сообщение от !_filin_!
Я извиняюсь, был уставший когда писал вопрос.
Собственно я хотел спросить какие алгоритмы сжатия (с реализацией на асме) будут полегче для человека который только начал осваивать такого рода программирование.
Также хотелось узнать о возможных подводных камнях.
Ps: В гугл то я собственно сразу и ломанулся, но от избытка инфы решил всё таки спросить у людей которые имели дело с этим.
;;;;;;;;;;;;;;;;;;;;;;
;esi - buffer to pack
;edi - output buffer
;ecx - length to pack
;;;;;;;;;;;;;;;;;;;;;;
@Rle_Pack:
cld
pushad
@Pack_Two_Loop:
mov al,byte[esi]
mov bl,al
stosb
xor edx,edx
@Rle_Pack_Loop:
inc esi
inc edx
dec ecx
jecxz @Rle_Pack_Count
cmp byte[esi],bl
je @Rle_Pack_Loop
@Rle_Pack_Count:
xchg eax,edx
stosb
test ecx,ecx
jnz @Pack_Two_Loop
popad
ret
;;;;;;;;;;;;;;;;;;;;
;esi - inputbuffer
;edi - outputbuffer
;;;;;;;;;;;;;;;;;;;;
@Rle_Depack:
cld
pushad
@Rle_Depack_Loop:
lodsb
push eax
lodsb
movzx ecx,al
pop eax
rep stosb
cmp word[esi],0
jne @Rle_Depack_Loop
popad
ret
вот rle недавно писал  наверно самое просто что есть )
|
|
|