[ASM] Faire une interruption sur 68000

Faire une interruption sur 68000 [ASM] - ASM - Programmation

Marsh Posté le 26-05-2003 à 10:54:27    

Salut,
 
Voila je voudrais faire une interruption via la ligne IRQ1 d'un 68332. J'ai fais mon code ASM mais quand je passe la ligne IRQ1 a 0 pour declencher l'interruption le proc ne la prend pas en contre et il continue l'execution du prog principal.
 
Dans le SR je mets le masque d'interruption au niveau 1 et dans la table des vecteurs a l'adresse correspondante a une interruption de niveau 1 (car IRQ1) je mets l'adresse de ma routine d'interruption.
 
Voici a quoi ressemble mon code:

Code :
  1. start  org  $0
  2.  dc.l   $7FFC  * adresse de la pile
  3.  dc.l   $249CC * adresse du debut du programme
  4. debut  org  $249CC
  5.  move.l #$64,a0 * adresse du vecteur IRQ1
  6.  move.l #$22000,(a0) * adresse de la routine d'interruption
  7.  move.w #$2100,sr


 
J'ai chercher dans les autres registres si ya quelque chose d'autre a parametrer mais j'ai rien trouve.
Qu'est ce que j'ai fait de faux ou oublie de faire?
 
Merci pour votre aide :jap:


Message édité par IvanleFou le 26-05-2003 à 10:57:52
Reply

Marsh Posté le 26-05-2003 à 10:54:27   

Reply

Marsh Posté le 26-05-2003 à 16:44:13    

c'est très loin le 68k...
 
mais vu que tu déclenches l'irq par le SR, un or ou un and ne serait pas plus appropriés ?

Reply

Marsh Posté le 26-05-2003 à 16:49:54    


 
Rien a voir, mais tu t'appelles vraiment Ivan??? Avec un I et tout????


Message édité par harrysauce le 26-05-2003 à 16:50:22
Reply

Marsh Posté le 27-05-2003 à 12:35:09    

Bon mon code est correct, c'est juste que je faisais pas certaine etapes comme lui mettre le numero du vecteur sur le bus au bon moment.
 
Maintenant il saute bien a l'adresse de la routine d'interruption.
 
Seul pbr j'arrive plus a revenir au programme :lol:  
 
Le PC ne recupere pas sa valeur sauvegardee en pile.
Mais bon je sens que je vais trouver :sol:


Message édité par IvanleFou le 27-05-2003 à 12:35:25
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed