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:
Se avete materiale me lo potete dire per favore?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: }
Grazie in anticipo a tutti.

Rispondi quotando