Salve
sono un nuovo membro del gruppo, vi chiedo aiuto in merito ad un esercizio d'esame a poche ore dal prossimo appello.
Spero che possiate aiutarmi:
testo esame: sviluppare programma per rendere nulli tutti gli elementi del vett1 nelle posizioni in cui sono nulli gli elementi del vett2
Ho scritto il programma, gira, soltanto che mi sostituisce con zero il VALORE SUCCESSIVO alla posizione quale dovrebbe
es. vett1 3,5,4,7
vett2 1,2,0,15 in questo caso il numero 4 andrebbe sostituito con 0...invece mi sostituisce il 7 successivo con lo zero.
Spero in un vostro aiuto.
ps. Ho attribuito l'errore all'incremento sulla linea 13..il problema è che non riuscirei a farne a meno..grazie
ORG $8000
vett1 dc.w 3,5,1,3,6,9,3,7,17,16 *Vett A
vett2 dc.w 1,2,0,15,0,36,0,3,0,12 *Vett B
dim dc.w 10
ORG $8200
SOTTOP movea.l 10(sp),a0 *vett1 *Prendo parametri dallo STACK
movea.l 6(sp),a1 *vett2
move.w 4(sp),d0 *dim
LOOP
clr.w d2
clr.w d3
add.w #-1,d0
move (a0)+,d2
move (a1)+,d3
cmp.w #0,d3
BNE salto
move.w #0,(a0)+
salto cmp.w #0,d0
BNE LOOP
ENDF rts
START move.l #vett1,-(sp) *Passo parametri nello STACK
move.l #vett2,-(sp)
move.w dim,-(sp)
jsr SOTTOP
FINE end START