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.