Bonjour à toutes et à tous !
Voilà, je suis en train de suivre un cours sur les microprocesseurs (type motorola) et je bloque sur un exercice.
Pourriez vous m'aider ?
Voici l'énoncé :
1) Ecrire un sous programme qui réalise l'addition du registre X avec Y et met le résultat dans X (seulement X est modifié)
2) 00 11 22 33 44 55 66 77 88 sont des octets contenus dans la pile. Après avoir exécuté "RTI", donner la valeur de chaque registre puis donner l'adresse de la prochaine instruction
3) Comment faire pour qu'un sous programme soit exécuté en un temps donné ? (par exemple, chaque millisecondes) ?
Voici ce que je pensais faire :
=> Ce qui me dérange, c'est que X n'est pas modifié car j'utilise l'accumulateur A
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 LDAA ,X /* on charge dans l'accumulateur A l'adresse que pointe le registre x*/ ADDA ,Y /* on ajoute dans l'accumulateur A l'adresse que pointe le registre y*/ STAA $3000 /* on stocke le résultat de A à l'adresse $3000 (adresse prise au hasard)*/
2) RTI correspond à un retour au programme de base après une interruption. Donc techniquement, la prochaine instruction est celle juste d'après celle où on a eu l'interrupteur. Je ne sais pas quelle est l'adresse par contre.
Pour les valeurs de chaque registre, il faut regarder le CCR (controle d'état). Quand on a fini notre interruption, on met I=0 pour autoriser à en avoir des nouvelles.
3) Pas trop d'idées pour le coup... Utiliser un timer ?
Merci de votre aide.
Partager