ZuperIndex
SOMMAIRE
Où manger
SUIVANTE
Où manger
PRECEDENTE
ZuperIndex

ZuperIndex
LE REGISTRE DE STATUS
Interruptions logiciels Fonction TI-92 Introduction
Fonction TI-92 Vecteurs en RAM
Fonction TI-92 Comment marchent-elles ? Barre

Page précédente

Monter Descendre Retour Introduction

puce Les interruptions logiciels (nommées TRAP) sont des interruptions déclenchées par le programme, celle-ci pointent des routines contenant elles même une ou plusieurs routines (notion de regroupement selon les TRAP).

puce Ces TRAP sont au nombre de 16 et ici, point de niveau de priorité comme c'est le cas pour les interruptions logiciels.

En effet, les TRAP sont principalement utilisées pour accéder à des routines liées au système d'exploitation, la TRAP 4 va par exemple éteindre la calculatrice.


Barre



Monter Descendre Retour Vecteurs en RAM

puce Seize TRAP donc seize routines différentes à exécuter et surtout à identifier en mémoire, ceci est réalisé par une liste de seize pointeurs de l'adresse $000080 à l'adresse $0000BC (un pointeur est une adresse donc est de type double mot soit 4 octets) :

$000080 vecteur de la TRAP 1 $000084 vecteur de la TRAP 2
$000088 vecteur de la TRAP 3 $00008C vecteur de la TRAP 4
$000090 vecteur de la TRAP 5 $000094 vecteur de la TRAP 6
$000098 vecteur de la TRAP 7 $00009C vecteur de la TRAP 8
$0000A0 vecteur de la TRAP 9 $0000A4 vecteur de la TRAP 10
$0000A8 vecteur de la TRAP 11 $0000AC vecteur de la TRAP 12
$0000B0 vecteur de la TRAP 13 $0000B4 vecteur de la TRAP 14
$0000B8 vecteur de la TRAP 15 $0000BC vecteur de la TRAP 16

puce Ces routines que nous pouvons littéralement définir comme des sous-programmes (mais spéciaux comme vous le verrez un peu plus loin), sont chargées d'effectuer des tâches bien précises, en prenant en compte (comme c'est parfois le cas) d'un paramètre passé par le registre D0.

puce Qui dit pointeurs dans la RAM dit… pointeur modifiable et c'est effectivement le cas !
Il devient alors possible de détourner ces interruptions mais dans des conditions restreintes.

Il faudra tout de même désactiver la protection de la mémoire en désarmant le bit 2 à l'adresse $600001, en effet toute écriture dans la mémoire inférieure à l'adresse $000120 n'est autorisée que sous cette condition, n'oubliez pas de réactiver la protection de la mémoire après avoir fini.

puce Voici une capture d'écran du logiciel Hexview 2.5 de Benoît Scherrer, celle-ci montre les vecteurs des interruptions logiciels de la TI-92II (les vecteurs sont différents selon les TI) :

puce

Barre



Monter Descendre Retour Comment marchent-elles ?

puce Et bien considérons que le programme fasse appel à la TRAP 4.

puce Le microprocesseur fini l'exécution de l'instruction courante et va déposer successivement sur la pile le registre de pointeur d'instruction PC (pour revenir au programme que nous allons quitter) puis le registre de statut SR, soit 4 puis 2 octets.

L'exécution se poursuit à l'adresse elle-même contenue à l'adresse associée à la TRAP 4, soit $000090.

La routine exécute alors la tâche qui lui incombe et va se terminer non pas par l'instruction RTS (qui restaure seulement PC) mais par l'instruction RTE (ReTurn from Exception) qui va, elle, restaurer PC et SR.

puce Le programme "interrompu " par la TRAP poursuit son exécution.


Barre



 

 

Lisez la section sur les droits d'auteur et la licence d'utilisation avant de distribuer Zguide.

Zguide © 1998 - 1999 par Florian DREVET. Tous droits réservés