pas_fois: vide_operande: |on vide la pile des operateurs tst.b (% a2) |tant qu'on arrive pas a la valeur reference beq fin_vide_operande move.b (% a2)+,(% a1)+ |on vide bra vide_operande fin_vide_operande: rts
Au début, le prog ne fait que des jsr ou des bsr, donc le prog va sur la boucle vide_operande, puis à fin_vide_operande avec le RTS.
Le problème, c'est juste après le pas_fois, on entre dans le sous-programme SANS faire de jsr/bsr, donc sans empiler d'adresse de retour. Et quand on arrive sur le rts, la pile est désalignée...
2 solutions:
- soit, entre le pas_fois et le vide_operande, rajouter un pea.l fin_vide_operande+ (combien? 2, sans doute ?)
- soit mettre un bsr vide_operande, et un bra apres_vide_operande, le label apres_vide_operande se trouvant APRES le rts...