CPC Rulez https://cpcrulez.fr/forum/ |
|
Codage sous interruption - IM1 RST 38H https://cpcrulez.fr/forum/viewtopic.php?f=4&t=6374 |
Page 1 sur 1 |
Auteur : | glaby [ 31 Juil 2020, 18:14 ] |
Sujet du message : | Codage sous interruption - IM1 RST 38H |
Bonjour , Lors d'une interruption en mode IM1 le code est executé en 38H et lors de démo on vient modifier les 2 lignes en EI et RET. Ma question est de savoir ou es stocké l'adresse de retour et comment cela fonctionne. Comme il est possible de faire plusieurs appel par un CALL par exemple , je pense que les adresses de retour sont empilés en ram mais ou ??? L'idée étant de créer un ou des programmes "multithread" en utilisant les interruptions comme on peut le voir dans des démos. Meme si cela est lent pour moi ce n'est pas un problème, la gestion des thread devant être transparent par le thread (à part son initialisation). En empilant les valeurs des registres et en les restaurant avant appel du thread cela devrait pouvoir fonctionner. En 38H je compte gérer une table qui aura les adresses de retour pour chaque thread avec possibilité d'affinité selon un codage dans le thread. Merci pour votre retour ! |
Auteur : | demoniakparadox [ 31 Juil 2020, 20:25 ] |
Sujet du message : | Re: Codage sous interruption - IM1 RST 38H |
L'adresse de retour lors d'une interruption est stockée sur la pile, comme un call. Si par exemple SP vaut #C000 juste avant une interruption, lors de cette interruption juste avant le saut en #38, SP sera décrémenté de 2 (taille d'une adresse 16 bits) et on stockera à l'adresse #BFFE (#C000 - 2) l'adresse de retour. De ce fait, le RET récupère l'adresse stockée dans la PILE, et incrémente SP de 2. |
Auteur : | glaby [ 31 Juil 2020, 21:22 ] |
Sujet du message : | Re: Codage sous interruption - IM1 RST 38H |
Merci pour ton retour. Par exemple si je fais ça : org #9000 LD a,100 call moins ret moins: dec A Push AF ret Comme je pousse AF sur la pile alors le RET ne pourra pas revenir après le CALL , c'est la valeur de AF qui va servir d'adresse retour ? C'est bien une pile de type LIFO ? |
Auteur : | demoniakparadox [ 01 Août 2020, 05:22 ] |
Sujet du message : | Re: Codage sous interruption - IM1 RST 38H |
Oui c'est bien ça |
Page 1 sur 1 | Le fuseau horaire est UTC+1 heure |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |