opt a+,o+,p+,o1+,o2+ ; cherhe si une instruction est pr‚sente move.l 4(sp),a0 ; adresse de base du tableau Instr2$(Spc20) beq.s error ; adresse nulle erreur bus move.l 8(sp),a1 ; adresse de base de l'instruction (Spc20) beq.s error ; adresse nulle erreur bus clr.l d1 ; on part de offset 0 bra.s dostart do: addi.l #20,d1 ; offset+20 dostart: moveq.w #20-1,d0 ; comparer 20 octets move.l a1,a2 ; copie de a1 move.l a0,a3 ; copie de a0 add.l d1,a3 ; copie de a0+offset cmpdo: tst.b (a3) beq.s cant.find ; fin du tableau cmpi.b #32,(a3) ; espace? beq.s strend ; oui, fin de chaine cmp.b (a2)+,(a3)+ ; comparer chaine, incr‚menter bne.s do ; non identique -> refaire dbra d0,cmpdo ; comparer encore 1 caractŠre strend: ext.l d1 divu.w #20,d1 ; diviser par 20 ext.l d1 addi.l #1,d1 ; plus 1: d‚part de 1 move.l d1,d0 ; retour rts cant.find: clr.l d0 ; 0 pas trouv‚ rts ; retour error: st.b d0 ; -1 erreur ext.w d0 ext.l d0 rts ; retour ;even ;IN: Dc.b "INSTR1 " ;TAB: ;Rept 10 ;Dc.b "INSTRX " ;Endr ;Dc.b "INSTR12 " ;Rept 10 ;Dc.b "INSTRX " ;Endr ;Ds.b 20