Questo è del codice assembler per il motorola 68000, non so quale assembly tu vada cercando cmq spero di fornirti un buon esempio. Se quello che vuoi è la soluzione di un esercizio, ti consiglio di arrivarci da solo... certo con un piccolo aiuto per capire... ed infatti ti mostro il codice di un programma simile, in modo che tu possa trarne ispirazione.
codice:
ORG $8000
%All'interno del registro A0 viene caricato l'indirizzo della
%stringa da esaminare.
START MOVEA.L #STRING,A0
%vengono caricati in D0 e D1 rispettivamente il carattere da
%ricercare e quello che pone fine alla stringa.
MOVE.B #TOKEN,D0
MOVE.B #TOKEN2,D1
%comincia il ciclo comparando (tramite indirizzi) le varie
%lettere con il carattere contenuto nel registro D0
LOOP CMP.B (A0)+,D0
%il ciclo controlla che non ci sia il carattere di fine
%stringa.
CMP.B (A0),D1
%condizione di uscita dal ciclo BNE = brench not equal: in
%pratica se queste due condizioni non vengono soddisfatte
%il programma salta nuovamente all'etichetta LOOP
BNE LOOP
%se il carattere è stato trovato, l'indirizzo viene memoriz-
%zato nella viariabile TOKENA.
FOUND SUBQ.L #1,A0
MOVE.L A0,TOKENA
ORG $8100
TOKEN EQU '!'
TOKEN2 EQU '<'
STRING DC.B 'ab!c<'
TOKENA DS.L 1
END START
Spero di esserti stato utile, a presto.