Salve a tutti. Il mio problema è, immesso un array di byte (la sequenza da comprimere) e un DWORD (lunghezza della sequenza), in output mi deve dare un array di byte (la sequenza compressa in run-length). In altre parole dati {34,45,45,3,2} --> {1,34,2,45,1,3,1,2,0}, dove la prima cifra è riferita al numero di volte che compare il 34, la seconda cifra è il valore stesso;
la terza cifra, il 2, è il numero di volte che è presente 45, la quarta cifra è il valore stesso, e così via. Alla fine come elemento di chiusura lo 0. In assembler.
Una bozza del programma che ho fatto:
codice:
xor eax,eax
mov eax,Len
MENTRE: cmp eax,0
je FINE
mov esi,-1
mov numocco,-1
mov edi,0
mov temp,Buffer[edi]
CICLO: inc esi
inc numocco
cmp temp,Buffer[esi]
je CICLO
jmp ALLORA
ALLORA: inc esi
jmp CICLO
mov temp,Buffer[esi]
FINE:
}
Se avete materiale me lo potete dire per favore?
Grazie in anticipo a tutti.