Non sono praticissimo con la sintassi AT&T, comunque
dovrebbe confrontare 0 con l'indirizzo di $buff; quello che tu vuoi invece è confrontare 0 con la memoria puntata da $buff, quindi qualcosa del genere:codice:cmp $0, $buff
o, se intendi confrontare il carattere '0' (la cifra, non il terminatore NUL):codice:cmpb $0,($buff)
codice:cmpb '0,($buff)