Salve a tutti,
vi chiedo un aiuto per risolvere una parte di un esercizio che mi sta facendo penare.
Il programma che ho simulato funziona alla perfezione ma come potete notare, mancano le istruzioni (sia nello stack che nell'area dati ho,per ora, escluso i parametri relativi alla posizione) relative all'output della posizione del primo elemento del vettore che è compreso nell'intervallo[MIN,MAX].
Ed è lì il problema... 



dato che sto passando in rassegna tutti gli elementi del vettore, se inserisco il controllo della posizione nel ciclo non avrò la posizione del primo vettore che soddisfa la condizione, ma dell'ultimo.
HELP ME,PLEASE! 
codice:
*Scrivere una procedura in Assembler MC68000 che riceve in ingresso un vettore di byte
*e la sua dimensione DIM e restituisce in uscita il numero di elementi compresi (CONT) tra MIN e MAX (estremi inclusi)
*e restituisce la posizione(POSPRIMO) del primo elemento che rispetta questa condizione.
*Per la posizione si consideri che il primo elemento parte dalla posizione ZERO.
*Si utilizzi una procedura con subroutine con passaggio di parametri tramite stack.
*AREA OFFSET PARAMETRI
CONT_OFF EQU 10
DIM_OFF EQU 08
V1_OFF EQU 04
RIT_OFF EQU 00
*PROGRAMMA PRINCIPALE
ORG $8000
MAIN
MOVE CONT,-(A7)
MOVE DIM,-(A7)
MOVE.L #V1,-(A7)
JSR COMPRESO
MOVE (A7)+,CONT
FINE JMP FINE
*SUBROUTINE
COMPRESO MOVEA.L RIT_OFF(A7),A3
MOVEA.L V1_OFF(A7),A1
MOVE DIM_OFF(A7),D0
MOVE #0,D2 conta elementi compresi
LOOP MOVE.B (A1)+,D1
CMP.B MAX,D1
BGT DIVR
CMP.B MIN,D1
BLT DIVR
ADD #1,D2
DIVR SUB #1,D0
BNE LOOP
MOVE D2,CONT_OFF(A7)
ADDA.L #CONT_OFF,A7
JMP (A3)
*AREA DATI
ORG $8500
V1 DC.B 1,-2,-4,7,8,3,10,-3
DIM DC.w 8
MIN DC.B -2
MAX DC.B 5
CONT DS.W 1
END MAIN